精华内容
下载资源
问答
  • 二维数组:C语言二维数组完全归纳 二维数组类同于数学中的行列矩阵,第一维表示行,第二维表示列。对象与对象一类的问题大都可以抽象为二维数组来描述。 二维数组定义 数据类型 数组名[第一维大小][第二维大小]; int...

    二维数组类同于数学中的行列矩阵,第一维表示行,第二维表示列。对象与对象一类的问题大都可以抽象为二维数组来描述。

    二维数组定义

    数据类型 数组名[第一维大小][第二维大小];

    int a[4][5];
    float sc[3][4];
    

    定义动态二维数组:

    int n=2;
    int a[n][3];
    int b[2][n];
    

    定义的数组未初始化时,数组内存储的时随机数;

    int a[2][3];//该数组的六个元素为随机数
    

    如果把二维数组看成特殊的一维数组,他每个元素就是特殊的一维数组。

    int salary[3][4];
    

    这是一个三行四列的二维数组,可以用该数组表示三个对象,所以将该数组看成三个一维数组,

    三个对象分别是salary[0]、salary[1]、salary[2]

    salary是数组名。
    每个对象又是包含四个属性的一维数组,四个属性分别用
    salary[i][0]、 salary[i][1]、salary[i][2]、salary[i][3];来表示。

    二维数组名salary是salary[0]的地址,即salary=&salary[0]。
    数组名+1表示跳过一个对象。
    salary+1为第二个对象salary[1] 的地址,salary+2为第三个对象salary[2] 的地址。

    PS.从数学行列式角度分析,二维数组名,即首行的地址,C语言中的地址一般是空间首地址。故二维数组名是首行首地址,该数组名+1,表示跳过一整行,达到第二行的首地址,并以此类推。

    //写个程序验证一下子
    #include<stdio.h>
    int main()
    {
       int sc[3][4];
       printf("sc=%p\n",sc);
       printf("&sc[0]=%p\n",&sc[0]);
       printf("&sc+1=%p\n",sc+1);
       printf("&sc+2=%p\n",sc+2); 
       return 0;
    }
    

    输出:
    sc=000000000062FDF0
    &sc[0]=000000000062FDF0
    &sc+1=000000000062FE00
    &sc+2=000000000062FE10

    分析:
    1)定义了一个三行四列的二维数组,三个对象,每个对象有四个属性;
    2)二维数组名相当于首对象sc[0]的地址,即sc==&sc[0]。
    输出的格式控制符为%p或%x或者%08x;
    可以看到二维数组的首对象的地址是16进制数00062FDF0
    3)二位数组名+1表示跳过一个对象(一行)的空间,到下一个对象(行) 的地址。即跳过一个对象的所有属性的空间,到下一个对象的起始位置。

    例子中int型数组在devc++的每个属性占用四个字节,一个对象占用4*4=16个字节,故sc、sc+1、sc+2的地址相差16个字节。
    4)程序每次运行时,由于起始地址的分配不同,所以输出结果会有不同。

    二维数组的引用

    二维数组的引用格式:

    数组名[行下标][列下标];
    

    注意:行下标和列下标均从0开始,同时要注意防止越界。

    加个例子说一下:

    #include<stdio.h>
    int main (void)
    {
        int a[2][3]; //先定义,后赋值
        int i,j,s=0;
        printf("Input 6 integers:");
        for(i=0;i<2;i++)  //行下标
        {
            for (j=0; j<3; j++)  //列下标
            {
                scanf ("%d",&a[i][j]); //勿忘 &
                s+=a[i][j] ; //与上一条语句不能颠倒
            }
        }
        for(i=0;i<2;i++)
        {
            for (j=0; j<3; j++)
                printf("%d\t",a[i][j]); //使用\t 的作用:向后跳四个空格,常用来做格线对齐
            printf ("\n"); //注意该输出换行符的位置
        }
        printf("s=%d\n", s);
        return 0;
    }
    

    运行结果:
    Input 6 integers:1 2 3 4 5 6
    1 2 3
    4 5 6
    s=21

    二维数组的存储

    二维数组在逻辑(逻辑)表现形式上可以理解为矩阵(分行分列),但是在内存中的物理存储又是连续的,即存完第一行,在后面继续存储第二行,第三行,…在这里插入图片描述

    动态二维数组的应用举例
    #include<stdio.h>
    #include<stdlib.h>
    int main(void)
    {
        int line,list;
        int **pary;
        int i,j;
        printf("Input the line:\n");
        scanf("%d",&line);
        printf("Input the list:\n");
        scanf("%d",&list);
        pary = (int **)malloc(sizeof(int *)*line);
        printf("Input the array:\n");
        for(i=0;i<line;i++)
        {
            pary[i] = (int *)malloc(sizeof(int)*list);
            for(j=0;j<list;j++)
            {
                scanf("%d",&pary[i][j]);
            }
        }
    
        for(i=0;i<line;i++)
        {
            for(j=0;j<list;j++)
            {
                printf("%d  ",pary[i][j]);
            }
            printf("\n");
        }
    
        for(i=0;i<line;i++)
            free(pary[i]);
        free(pary);
        return 0;
    }
    
    
    展开全文
  • char a[100][100]; int m; scanf("%d",&m); while(m--) gets(a[m]); 为什么一个元素都输入不进去,新手求教
  • #include<stdio.h> int main(){ char a[15][20]; int i; for(i=0;i<15;i++){ scanf("%s",&a[i][0]); } printf("%s ",&a[2][0]); printf("%s",&a[11][0]); }
    #include<stdio.h>
    int main(){
    	char a[15][20];
    	int i;
    	for(i=0;i<15;i++){
    		scanf("%s",&a[i][0]);
    	}
    
    	printf("%s ",&a[2][0]);
    	printf("%s",&a[11][0]);
    	
    }
    
    
    展开全文
  • #include"stdio.h" main() { int a[3][3],i,j; for(i=0;i;i++) ...我认为每当我输入3个数的时候,它就会自动的换行,像这样 4 5 6 但当我输入三个数以后,它却不能自动换行,这是怎么回事? 7 8 9
  • #include<stdio.h> main() { int a[2][3],i,j; printf("Enter data by line:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } printf("Output a 2-dimension ... pr
    #include<stdio.h>
    main()
    {
    	int a[2][3],i,j;
    	printf("Enter data by line:\n");
    	for(i=0;i<2;i++)
    	{
    		for(j=0;j<3;j++)
    			scanf("%d",&a[i][j]);
    	}
    	printf("Output a 2-dimension array:\n");
    	for(j=0;j<2;j++)
    	{
    		for(i=0;i<3;i++)
    			printf("%4d",a[i][j]);
    		printf("\n");
    	}
    }
    
    展开全文
  • cout 请输入"第" 个学生的四门成绩: " ; for ( j = 1 ; j ; j ++ ) { cin >> stu [10][4] ; } } for ( i = 1 ; i ; i ++ ) { for ( j = 1 ; j ; j ++ ) { cout [i][j] ; } } }
  • public class SZ { public static void main(String[] args) { ... System.out.println("请输入行数"); int h=sc.nextInt(); System.out.println("请输入列数"); int l=sc.nextInt(); S...

    在这里插入图片描述

    public class SZ {
    public static void main(String[] args) {
    	Scanner sc=new Scanner(System.in);
    	System.out.println("请输入行数");
    	int h=sc.nextInt();
    	System.out.println("请输入列数");
    	int l=sc.nextInt();
    	System.out.println("请输入开始值");
    	int s=sc.nextInt();
    	int t[][]=new int[h][l];
        for(int i=0;i<h;i++) {
        	if(i%2==0) {
        	for(int j=0;j<l;j++) {
        		t[i][j]=s++;
        	}
        	}else {
        		for(int j=l-1;j>=0;j--) {
        			t[i][j]=s++;
        		}
        	}
        	}
        
        for(int i=0;i<t.length;i++) {
        	for(int j=0;j<t[i].length;j++) {
        		System.out.print(t[i][j]+"\t");
        	}
        	System.out.println();
        }
    }
    }
    

    结果:
    在这里插入图片描述

    展开全文
  • 用C++语音实现一维数组二维数组写入txt,从txt中读取数据存到一维数组、二维数组,数组用指针表示
  • C语言总结第七章、数组一维数组一维数组的定义一维数组的引用一维数组的初始化程序举例二维数组及多维数组二维数组的定义二维数组元素的引用二维数组元素的初始化程序举例字符数组和字符串字符数组 第七章、数组 ...
  • Python输入数组(一维数组、二维数组

    万次阅读 多人点赞 2018-08-09 20:14:34
    一维数组: arr = input("") //输入一个一维数组,每个数之间使空格隔开 num = [int(n) for n in arr....一维数组输入输出示例:    二维数组: (以n*n的二维数组为例) n = int(input()) /...
  • 维数组输入 void push1() { vector<int> vector1; int inputnum; while (cin >>inputnum) { vector1.push_back(inputnum); if (cin.get() == '\n'); break; }; } 二维数组的输入 void ...
  • 二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化。 创建二维数组 在 Java 中二维数组被看作...
  • 二维数组输入 n=int(input()) a=[] for _ in range(n): a.append(list(map(int,input().split(' ')))) print(a) 一维数组的输入 ########一维数组的输入3 a=list(map(int,input().split(' '))) print(a) ...
  • C++二维数组 | 二维数组输出0-6

    千次阅读 2020-12-01 09:44:12
    C++二维数组 C++的二维数组是指具有两个下标的数组,有些数据要依赖于两个因素才能惟一地确定,因此才会引入二维数组。 C++二维数组的定义 C++中定义二维数组的一般格式: 类型标识符 数组名[常量表达式] [常量...
  • java二维数组字符数组Today we will look into Two-dimensional array in java. An array is like a container that can hold a certain number of values. 今天,我们将研究Java中的二维数组。 数组就像可以容纳...
  • 二维数组或三维数组转为一维数组 1.二维数组转换为一维数组: 设二维数组a[i][j],数组a行数x行,列数y列; 一维数组b[n],数组b最多存储m=x*y个元素。 令x=3,y=4则:m=12 此时,数组a中元素的位置序号(i j)为: 00 ...
  • public class test { ... // 学会二维数组的定义,初始化,循环赋值 // 用第一种方法定义二维数组 int intArray[][]; // 用第二种方法定义二维数组 int[] intArray1[]; // 用第三种方法定义二维数...
  • 但是自己突然想测试一下,用new创建的二维数组是真的二维数组吗? 首先我们真的 C++可以直接定义二维数组 只要row和col都知道,就可以确定二维数组大小。 int num[10][10]; 明确了row和col,就不太容易越界了。...
  • 问题描述 用数组指针操作二维数组,并将二维数组输出
  • 今天我们来聊聊二维数组及其二维数组的动态内存分配关知识。 1.数组的基本定义 我们都知道,数组是典型的线性存储,是一种最基本的存储表示方法, 把逻辑上相邻的元素存储在物理位置相邻的存储单元中,由此得到的...
  • 输入一个二维数组,求二维数组中各行元素的和。 #include<iostream> using namespace std; int main() { int math[3][4],sum1,sum2; int i,j; cout<<"请输入数组元素:"<<endl; for(i=0;i<3...
  • 设有一个3行4例放入二维数组a,编写程序,通过键盘输入数组元素,然后计算每行元素的平均值并输出 思路: (1)使用二重循环,进行数组元素的输入 (2)每行的平均值可以存放在另一个一维实型数组ave[3]中 ...
  • 输入一维数组 一维数组输入第一种 一维数组输入第二种 输入二维数组
  • 如题:C++中怎么将一维数组输出为二维数组,比如一维数组有(1.2.3.4…100),输出为5行20列的二维数组 已调试,正常输出。 ** #include using namespace std; int main() { int iArr[100]={};//声明一维...
  • JAVA基础之二维数组三维数组及应用

    千次阅读 2018-01-05 19:17:19
    二维数组 简单说明: 如何描述下面定义的二维数组 定义方式一: int[][] array = new int[3][4]; 描述:该二维数组中有三个一维数组 每一个一维数组中有4个元素 打印二维数组的长度 相当于打印数组中有多少个一...
  • 二维数组拆分为三维数组 目标:把一个m∗nm*nm∗n的数组,每x行为一页(x可被m整除),拆分为一个m行n列x页的三维数组 代码 import numpy as np a = np.arange(30) a.resize(6,5) a array([[ 0, 1, 2, 3, 4], [ 5...
  • 【C语言】一维数组和二维数组

    千次阅读 2017-07-10 09:43:54
    一维数组及二维数组
  • c++中利用vector创建并输入二维数组时不能利用传统的输入方法cin>>要利用到vector创建一维数组并将其插入二维数组内。代码如下: # int b[3][3] = { { 1,1,1 },{ 1,0,1 },{ 1,1,1 } }; vector<vector<...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,824
精华内容 74,329
关键字:

二维数组输入