二维数组及多维数组 维数组通常是用来处理数列问题的 例如: a n 人可以用一维来表示。 二维数组通常是用来矩阵问题的。例如下面 的数表(矩阵) 11a12 可以用二维数 22 组来表示。 a a a34-3×4
§7.2 二维数组及多维数组 一维数组通常是用来处理数列问题的 例如: a1 、 a2 、a3 、….、an、 …. 可以用一维来表示。 二维数组通常是用来矩阵问题的,例如下面 的数表(矩阵): a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 3×4 可以用二维数 组来表示
c ★1、二维数组的定义元素个数行数c0I 今定义方式: c[O[0[3 数据类型数组名[常量表达式]常量表 例inta[31[4] cO[12 数组 float bi215 在 int a3, 4j 即先存第一行,接着存第二行, cO[212 以此类推。例如: c[01213 c100 int a] allo ccccc a[][o c[2 a010 al0ll1 awul a10 al a[2 iron ccc a[2][0]a[2] a[2][1 c[][212]
1、二维数组的定义 ❖定义方式: 数据类型 数组名[常量表达式][常量表达式]; ❖数组元素的存放顺序 在内存中按行顺序存放。 即先存第一行,接着存第二行, 以此类推。例如: 例 int a[3][4]; float b[2][5]; int a[3,4]; () 行数元素个数=行数列数*列数 int a[3][2] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] 0 1 4 5 2 3 a[0][0] a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] 0 1 2 3 4 5 6 7………... 20 21 22 23 int c[2][3][4] c[0][0][0] c[0][0][1] c[0][0][2] c[0][0][3] c[0][1][0] c[0][1][1] c[0][1][2] c[0][1][3] c[0][2][0] c[0][2][1] c[0][2][2] c[0][2][3] c[1][0][0] c[1][0][1] c[1][0][2] c[1][0][3] c[1][1][0] c[1][1][1] c[1][1][2] c[1][1][3] c[1][2][0] c[1][2][1] c[1][2][2] c[1][2][3]
2、二维数组理解 由按上述定义的二维数组的方式(比如:inta2[3]), 我们可以把二维数组看成是一种特殊的一维数组:它的 元素又是一维数组。例如,把a看成是一维数组,它有 3个元素,分别是:a01、a1la2,每个元素又是 个包含4个元素的一维数组。如下表: a[0]a[010]、al[0]、a01[2]、al[013 aa]a[lo、a[ll、a[12]、a13 a[2]—a[2]0]、a2]]、a21[2]、a2][3] 其中a是数组a[0]、a[l、a[2]的数组名 而a[0]是数组a[O[0]、a[0[1、ao1[2]、a[0[3]的数组名 a[是数组a[1l0、a[1[l、a112]、a[l3]的数组名 a[2]是数组a[210]、a[2][1、a2J[2]、a2J3]的数组名
2、二维数组理解 由按上述定义的二维数组的方式 (比如:int a[2][3] ), 我们可以把二维数组看成是一种特殊的一维数组:它的 元素又是一维数组。例如,把 a看成是一维数组,它有 3个元素,分别是:a[0]、a[1]、a[2],每个元素又是一 个包含4个元素的一维数组。如下表: a[0] a[0][0] 、 a[0][1] 、 a[0][2] 、 a[0][3] a a[1] a[1][0] 、 a[1][1] 、 a[1][2] 、 a[1][3] a[2] a[2][0] 、 a[2][1]、 a[2][2] 、 a[2][3] 其中 a 是数组 a[0]、a[1]、a[2] 的数组名 而 a[0] 是数组 a[0][0]、a[0][1] 、a[0][2] 、 a[0][3] 的数组名 a[1]是数组 a[1][0]、a[1][1] 、a[1][2]、a[1][3]的数组名 a[2]是数组 a[2][0]、a[2][1]、 a[2][2] 、a[2][3]的数组名
3、二维教组元素的引用 形式:数组名下标川下标 4、二维数组的输入出。使用双层循环。例如 maino f int a[45,1,j; or(i=1;i<=3;i++) 输入,数据用空格或回 or(j=1ij<=4-j++) 车隔开 scanf(“%od”, &alli): or(i=1;i<=3;i++) for(j=1;j<=4;j++) 输出 prin(%d”,a[il[j)
3、二维数组元素的引用 形式: 数组名[下标][下标] 4、二维数组的输入输出。 使用双层循环。例如: main() { int a[4][5] , i , j ; for (i=1 ;i<=3;i++) for(j=1;j<=4;j++) scanf(“%d”,&a[i][j]); for (i=1 ;i<=3;i++) for(j=1;j<=4;j++) printf(“%d”, a[i][j]); } 输入,数据用空格或回 车隔开 输出
5、二维数组元素的初始化 分行初始化 第 第一维长度省略初始化 例inta[I[3]={1,2,3,4、5} a(ojr a[o[l] a[0J[2 123 a[1l[0] a[l[l] a[l][2]
5、二维数组元素的初始化 ⚫分行初始化: ⚫按元素排列顺序初始化 例 int a[2][3]={{1,2,3},{4,5,6}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 6 全部初始化 = 例 int a[2][3]={{1,2},{4}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 0 4 0 0 部分初始化 = 例 int a[ ][3]={{1 },{4,5}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 0 0 4 5 0 第一维长度省略初始化 = 例 int a[ 2][3]={1,2,3,4,5,6}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 6 全部初始化 = 例 int a[ 2][3]={1,2,4,}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 4 0 0 0 部分初始化 = 例 int a[ ][3]={1,2,3,4、5}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 0 第一维长度省略初始化 =