C语言数组问题,来看看吧~~谢谢拉!

来源:百度知道 编辑:UC知道 时间:2024/07/04 05:09:49
请高手帮忙解释下下面的程序:
例题:将一个二维数组行和列元素互换,存到另一个二维数组中.
程序如下:
main()
{int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a :\n");
for(i=0;i<=1;i++)
{ for(j=0;j<=2;j++)
{printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}
在这个程序的每一行都解释一下好吗?就是加上/*....*/这样的注释.
我刚开始学C语言,对数组不太熟.
非常感谢!!!
程序里面运用的for循环的原理是什么?怎么样理解这个for循环在这个数组程序中的运用?

for(i=0;i<=2;i++) 是什么意思?

for(j=0;j<=1;j++) 是什么意思?

main() /*主函数*/
{int a[2][3]={{1,2,3},{4,5,6}}; /*定义数据并给树组赋值*/
int b[3][2],i,j; /*定义整形树组b,变量i,j*/
printf("array a :\n"); /*打印"array a : 回车"*/
for(i=0;i<=1;i++) /*循环行*/
{ for(j=0;j<=2;j++) /*循环列*/
{printf("%5d",a[i][j]); /*打印第i行第j列*/
b[j][i]=a[i][j]; /*树组a的i行j列赋给数祖b的j行i列*/
}
printf("\n"); /*打印回车*/
}
printf("array b:\n"); /*打印"array b;"*/
for(i=0;i<=2;i++) /*循环行*/
{
for(j=0;j<=1;j++) /*循环列*/
printf("%5d",b[i][j]); /*打印数组b*/
printf("\n");
}
}

就是遍历数组啊,比如说2行2列:
1 2
3 4
这样的数组,for(i=0;i<2;i++)是从第1行到第2行
for(j=0;j<2;j++)是从第一列到第2列,访问的顺序是1,2,3,4
再说详细点就是,i=0的时候进入内层循环也是就j的循环,循环j的时候你就指定了数组的位置,j=0的时候就是a[0][0]=1,j=1的时候a[0][1]=2,现在明白了吗.

在程序的一些关键语句旁边加注释是很重要的,这便于你事后查看程序时知道语句或者变量等的作用和意思,便于查错.
你这个程序很简单,首先定义了一个两行三列的二维数组,在下面的行和列的转换中,关键是抓住行和列的下标的变化

<