一、二维数组的引入和定义
1、前面已提到,有的问题需要用二维数组来处理。
例如:有3个小分队,每队有6名队员,要把这些队员的工资用数组保存起来以备查。这就需要用到二维数组,见图下。如果建立一个数组pay,它应当是二维的,第一维用来表示第几分队,第二维用来表示第几个队员。例如用pay2,3表示2分队第3名队员的工资,它的值是1725。
2、定义3、二维数组实际上是特殊的一维数组。
说明:
int array[2]={1,2}; //一维数组
int array[2][3]={{22,33,44},{77,88,99}};
//{22,33,44}就是一维数组,外层也是一个一维数组
二、二维数组的初始化
1、按行列初始化
int array1[2][3]={{22,33,44},{77,88,99}};
2、没明确行列,类似一维数组
int array[3][4]={1,2,3,4,5,6,7,8,9,0,1,2};
3、部分赋初值
1)案例一
2)案例二
3)案例三
4)案例四
可以不写行,但一定要写列
int array1[3][4]={1,2,3,4,5,6,7,8,9,0,1,2};
int array2[][4]={1,2,3,4,5,6,7,8,9,0,1,2};
三、二维数组的定义的相关演示
对每行每列的具体数值和元素的数值进行输出
1、代码:
#include <stdio.h>
int main()
{
int array1[2][3]={{22,33,44},{77,88,99}}; //{22,33,44}就是一维数组,外层也是一个一维数组
int i,j;
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d %d %d\n",i,j,array1[i][j]);
}
}
return 0;
}
2、编译结果:
四、二维数组的遍历——循环的嵌套
有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
1、代码
#include <stdio.h>
int main()
{
int i,j,hang,lie;
int array[3][4]={{1,12,23,84},{15,116,347,68},{99,110,131,121}};
int max;
max=array[0][0]; //假定一个最大值
for(i=0;i<3;i++){
for(j=0;j<4;j++){
if(max<array[i][j]) //拿刚刚的最大值与别人打,打不过,就换成对方的值
max=array[i][j];
hang=i; //行和列要赋值出来,否则输出的就是3和4(循环结束的i和j值)
lie=j;
}
}
printf("最大值是第%d行第%d列的%d",i,j,max);
return 0;
}
2、编译结果:
总结:至此,二维数组的内容就结束了,在指针中,数组的知识点还多有体现,在指针的学习中,再重温一次这里的知识点。