程序运行结果:
array a;
1 2 3
4 5 6
你的理解错误在没有注意到这里是for语句的嵌套使用。
在i=0时,j=0,j=1,j=2 出来三个值a[0][0],a[0][1],a[0][2]而非你理解的只出来a[0][0];
同理在i=1时,同样j会从0一直运行到j=2出来三个值a[1][0],a[1][1],a[1][2]。
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
整理一下,好看点:首先i=0,小于1故成立,执行大括号里面的代码,{}里面又有一个for循序,再j=0,又判断j<2成立继续执行第二个for循环里面的代码,执行了printf("%5d",a[i][j]);了之后,而后再j++,得j=1,小于2,又执行第二个括号里面的代码,就这样一直加到j=3不成立退出第二个for循环。现在才又回到第一个for循环,i++,得i=1,之后又执行第二个for就这样一直到i=2的时候才跳出整个for循环……希望能看懂。顺便说下:for循环是一定要判断不成立的时候才能退出循环,否则将会一直执行下去。如有人写的大循环(死循环)就是这样写的:for(,,){……};小括号里面什么都没有,因此当程序执行到这个for循环的时候将一直不跳出,成了一个死循环。
貌似不是你这么理解的
i=0,j=0 输出a【0】【0】、然后应该是a=0,j=1.输出a[0][1],接着j++是2,即此时i=0,j=2,输出a[0][2],然后j++得到的是3,因此跳出第二个fot循环,执行i=1,j=0,输出a[1][0]........
一楼说的很清楚!不再解释了。不过有个建议,这么简单的题你就直接问同学就搞定了,不用上网问吧,打那么多字怪浪费你时间的!