5.2 二维数组 一. 二维数组的定义 1. 定义方式: 数据类型 数组名[常量表达式1][常量表达式2];,2. 数组元素的存放顺序 按行存放,行数,列数,元素个数=行数*列数,例如:定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组 float a[3][4],b[5][10];,3. 二维数组理解,每个元素a[i]由包含4个元素 的一维数组组成,a[i]是第i 行4个数组元素的首地址,二维数组a是由3个元素组成,2、数组元素的引用,先定义,后使用 定义:类型名 数组名[行长度][列长度]; 数组元素的引用: 数组名[行下标] [列下标] 行下标的取值范围是[0,行长度-1] 列下标的取值范围是[0,列长度-1] 下标不要越界,遍历二维数组,行下标和列下标分别做为循环变量, 通过二重循环,遍历二维数组 通常将行下标做为外循环的循环变量,a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] for(i = 0; i 3; i++) for(j=0; j2; j++) a[i][j] = i+j;,i=0 j=0 i=0 j=1 i=1 j=0 i=1 j=1 i=2 j=0 i=2 j=1,0 1 1 2 2 3,输入二维数组,int a[3][2]; for(i = 0; i 3; i++) for(j=0; j2; j++) scanf(“%d”, 输入:1 2 3 4 5 6,a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1],1 2 3 4 5 6,按矩阵的形式输出二维数组,int a[3][2]; for(i = 0; i 3; i++) { for(j=0; j2; j++) printf(“%d”,a[i][j]); printf(“\n”); },a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1],三. 二维数组元素的初始化 1. 分行初始化:,2. 按元素排列顺序初始化,四. 程序举例,b[i][j]=a[j][i],,:,归纳:,其中:,例5-4: 求二维数组a[3][4]中最大元素值及其行、列号,行号:i :0 ~ 2 列号:j :0 ~ 3,首先设定一个比较的对象,作为暂时的最大值变量(max),其初值可设为a[0][0] 然后使行号 i 和列号 j 在上述范围内变化,判断此时是否满足:a[i][j]max , 若是,则将此元素作为最大值保存,并保存其行号和列号;若否,则不做任何处理,继续判断下一个数组元素。
最后输出最大值max及它在数组中的行号和列号include main() { int a[3][4]={{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}}; int i,j,row,colum,max; max=a[0][0]; row=0;colum=0; for(i=0;imax) { max=a[i][j]; row=i; colum=j; } printf(“max=%d, row=%d, colum=%d\n“,max,row,colum); },:,x[4][3] — 用来存放原数组中所有元素之和,★ 程序须完成如下过程:,实现下列运算: x[0][3]= x[0][0]+ x[0][1]+ x[0][2] ----- i =0,j :0 ~ 2 x[1][3]= x[1][0]+ x[1][1]+ x[1][2] ----- i =1,j :0 ~ 2 x[2][3]= x[2][0]+ x[2][1]+ x[3][2] ----- i =2,j :0 ~ 2 x[3][3]= x[3][0]+ x[3][1]+ x[3][2] ----- i =3,j :0 ~ 2,1. 定义一个5行4列的数组x[5][4],并读入原数据表中的数据;,2. 将x[5][4]中的最后一列和最后一行的元素赋初值为0; 即: x[i][3]=0 i :0~3 ; x[4][j]=0 j :0~3,x[4][0]=x[0][0]+x[1][0]+x[2][0]+x[3][0] --- i : 0~3, j = 0 x[4][1]=x[0][1]+x[1][1]+x[2][1]+x[3][1] --- i : 0~3, j = 1 x[4][2]=x[0][2]+x[1][2]+x[2][2]+x[3][2] --- i : 0~3, j = 2,x[4][3]=x[0][0]+x[0][1]+……+x[3][2] --- i: 0~3, j: 0~2,main() { int x[5][4],i,j; for(i=0;i=3;i++) for(j=0;j=2;j++) scanf(“%d“, } },i = 0: x[0][3]= x[0][0]+ x[0][1]+ x[0][2] x[4][0]=x[0][0], x[4][1]=x[0][1] x[4][2]=x[0][2] x[4][3]= x[0][0]+ x[0][1]+ x[0][2],i = 1: x[1][3]= x[1][0]+ x[1][1]+ x[1][2] x[4][0]=x[0][0]+ x[1][0] x[4][1]=x[0][1]+ x[1][1] x[4][2]=x[0][2]+ x[1][2] x[4][3]= x[0][0]+ x[0][1]+ x[0][2] + x[1][0]+ x[1][1]+ x[1][2],,,∷∷∷,。