二维数组基本知识点及初始化: #include
int main()
{
int i;
int j;
int array[2][3]={{000,111,222},{333,444,555}}; //000,111,222为第一行,333,444,555为第二行
int a[][4]={0,1,2,3,4,5,6,7,8,9}; //不写行可以,不写列不行
//数组初始化三种方式:
int array1[3][4]={{1},{5},{9}}; //只对各行第1列元素赋初值
int array2[3][4]={{1},{0,5},{0,3,5}}; //对各行某一元素赋初值
int array3[3][4]={{1},{5,9}}; //只对某几行元素赋初值
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("i=%d,j=%d,array=%dn",i,j,array[i][j]);
}
}
printf("array=%dn",array[1][1]); //第1行第1列实际为我们数到的第2组第2项,因为从0开始计算
puts("");
puts("不写行输出为:");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",a[i][j]);
}
puts("");
}
puts("");
puts("初始化方式一输出为:");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",array1[i][j]);
}
puts("");
}
puts("初始化方式二输出为:");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",array2[i][j]);
}
puts("");
}
puts("初始化方式三输出为:");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",array3[i][j]);
}
puts("");
}
puts("n输出结束");
return 0;
}
D:C语言第四章>gcc arrays.c
D:C语言第四章>a.exe
i=0,j=0,array=0
i=0,j=1,array=111
i=0,j=2,array=222
i=1,j=0,array=333
i=1,j=1,array=444
i=1,j=2,array=555
array=444
不写行输出为:
0 1 2 3
4 5 6 7
8 9 0 0
初始化方式一输出为:
1 0 0 0
5 0 0 0
9 0 0 0
初始化方式二输出为:
1 0 0 0
0 5 0 0
0 3 5 0
初始化方式三输出为:
1 0 0 0
5 9 0 0
0 0 0 0
输出结束
练习:找最大值及对应下标 #include
//练习:有一个3*4的矩阵,求出最大值及对应所在的行号和列号
int main()
{
int i;
int j;
int array[3][4]={{47,1,68,93},{98,100,50,83},{19,4,82,57}};
int line; //用来记录行
int list; //用来记录列
int max; //记录最大值
max=array[0][0]; //先将数组第一个值赋初值给max,否则没有比较的数
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%dt",array[i][j]); //t为水平制表符,通常默认4个空格
}
puts("");
}
for(i=0;i<3;i++) //在编写时,a行b列就直接写为i
D:C语言第四章>gcc ex5_arrays.c
D:C语言第四章>a.exe
47 1 68 93
98 100 50 83
19 4 82 57
最大数为:100
所在行为:2
所在列为:2
输出结束