求解C语言程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 08:54:01
下面这个程序我在电脑上调试得3,但是我对for循环的嵌套不是很明白,希望大家能给我具体讲一下下面这个题目,谢谢了!另外对与for循环我也希望能有所了解
main()
{int i,j,k,n[3];
for(i=0;i<3;i++)n[i]=0;
k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
}
具体一下,for循环嵌套
是怎么执行的

main()
{int i,j,k,n[3];
for(i=0;i<3;i++)n[i]=0; /*依次给数组N每个元素付值都为0*/
k=2;
for(i=0;i<k;i++) /*外层的FOR,初始为0,结束在I<K,步进为1*/
for(j=0;j<k;j++) /*内层的FOR,初始为0,结束在I<K,步进为1*/
n[j]=n[i]+1;
printf("%d\n",n[1]);
}

外层的FOR每加一,内层FOR就要全部循环一次,所以
I=O J=0 N[0]=0+1
I=0 J=1 N[1]=0+1 ;
I=0 J=2 N[2]=0+1 ;
I=1 J=0 N[0]=1+1
I=1 J=1 N[1]=1+1
I=1 J=2 N[2]=1+1
I=2 J=0 N[0]=2+1
I=2 J=1 N[1]=2+1
I=2 J=2 N[2]=2+1
输出N[1]=3
FOR(;;)只是一个循环语句,FOR ()里的变量可以与内部语句无关西,只起循环次数的作用,
例如:
main()
{int i,sum=0;
for(i=0;i<20;i++)
sum=sum+1;
printf("20ge 1 de he=%d",sum);
}
输出的结果是:20
如果改成:sum=sum+2; 结果就变成:40

for(i=0;i<3;i++)n[i]=0; 数组元素全为0

for(i=0;i<k;i++)
for(j=0;j<k;j++)
n[j]=n[i]+1;
下面是过程:
n[0]=n[0]+1 //n[0]=1 n[1]=0
n[1]=n[0]+1