首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-14 
关于双层for循环,菜鸟发分,先到先得!!请问这两种赋值方法有何不同?第一种:voidmain(){inta[3][3]inti0,j

关于双层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
循环就不会执行了

热点排行