读书人

关于双层for循环初学者发分先到先

发布时间: 2012-03-14 12:01:12 作者: rapoo

关于双层for循环,菜鸟发分,先到先得!!
请问这两种赋值方法有何不同?
第一种:
void main()
{
int a[3][3];
int i=0,j=0;

for(;i <3;i++)
for(j=0;j <3;j++)
scanf( "%d ", &a[i][j]);


printf( "%d ", a[1][0]);
}
第二种:
void main()
{
int a[3][3];
int i=0,j=0;

for(;i <3;i++)
for(;j <3;j++)
scanf( "%d ", &a[i][j]);


printf( "%d ", a[1][0]);
}

为何第二种方法不能正确显示数据?

[解决办法]
第二种方式运行三次后
j = 3
循环结束

但是目前只是给a[0][0] a[0][1] a[0][2]赋了值

所以你访问a[1][0]是一个奇怪的数字
[解决办法]
for(;j <3;j++)
经过一轮循环j的值为3
接着再循环开始前,没对j赋值为0
循环就不会执行了

读书人网 >C语言

热点推荐