二维数组简单定义及遍历
- 地址也是连续的(对比一维数组)
- 看成数表(行列)
代码
#include <stdio.h>
int main()
{
int arrys[2][3] = {{1,2,3},{4,5,6}};
int i,j;
printf("二维数组\n");
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d,%p ",arrys[i][j],&arrys[i][j]);
}
putchar('\n');
}
return 0 ;
}
现象
二维数组见怪不怪的几种初始化
了解5种初始化
代码
#include <stdio.h>
int main()
{
int arrys[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};//第一种正常赋值
int arrys1[3][4] = {1,2,3}; //第二种
int arrys2[3][4] = {{1},{2},{3}}; //第三种
int arrys3[3][4] = {{1},{0,3},{6,0,2}}; //第四种对某些行赋值
int arrys4[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};//第五种当维数组正常赋值--并且不写行数
int i,j;
printf("二维数组\n");
printf("第一种赋值\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d ",arrys[i][j]);
}
putchar('\n');
}
putchar('\n');
printf("第二种赋值\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d ",arrys1[i][j]);
}
putchar('\n');
}
putchar('\n');
printf("第三种赋值\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d ",arrys2[i][j]);
}
putchar('\n');
}
putchar('\n');
printf("第四种赋值\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d ",arrys3[i][j]);
}
putchar('\n');
}
putchar('\n');
printf("第五种赋值\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d ",arrys4[i][j]);
}
putchar('\n');
}
return 0 ;
}
现象
二维数组的应用
代码
#include <stdio.h>
int main()
{
int arrys[3][4] = {{1,12,23,84}
,{15,24,67,256}
,{135,54,78,23}};
int i,j;
int max ;
int hang,lie;
max = arrys[0][0];
printf("二维数组简单应用\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d\t",arrys[i][j]);
}
putchar('\n');
}
putchar('\n');
for(i=0;i<3;i++){
for(j=0;j<4;j++){
if(max<arrys[i][j]){
max = arrys[i][j];
hang = i+1; //看着舒服
lie = j+1; //看着舒服
}
}
}
printf("最大的元素在第%d行,第%d列,数值为%d\n",hang,lie,max);
return 0 ;
}
现象
----- 如有错误欢迎大家批评指正!!!