问个C语言的问题~~~~~`1332131
- 提问者网友:谁的错
- 2021-06-05 00:03
{ int n[3],j,k,l;
for(j=0;j<3;j++);
n[j]=0; n[j]=0
l=3
for(j=0;j<1;j++)
for(k=0;k<1;k++)
n[k]=n[j]+1
printf("%d\n",n[1]);
想问一下这个嵌套for循环是怎么运作的
- 五星知识达人网友:渊鱼
- 2021-06-05 01:03
- 1楼网友:枭雄戏美人
- 2021-06-05 03:20
- 2楼网友:鸽屿
- 2021-06-05 03:12
for(j=0;j<3;j++); 这里这个个for()是空语句吗,怎么用“;”了?
第二个for是嵌套循环它先从第一个for()开始也就是for(j=0;j<1;j++),先从j=0开始然后进行第二个for(k=0;k<1;k++)循环,第二个for在j=0的情况下执行1次,执行完了,进行j=1的循环,一次类推了
- 3楼网友:人類模型
- 2021-06-05 02:42
我告诉你,拿来的{}呀,
第一个循环是把N数组的元素值全赋为0,让后就是 n[j]=0对了,还缺个;这调就是n[3]=0这条有错误,这样会出现错误,改成n[j-1]=0;让后就是l=3这个也缺;
这下就进嵌套循环了,你J等于1是k也循环一次,这样就会执行一次n[k]=n[j]+1,执行完这条语句就是n[0]=1;这样他会在执行k>1了,所以这次循环结束,接着他会跳回for(j=0;j<1;j++)这条会判断条件,结果条件不满足因j>1所以就打印,不过打印也会打印出。0,因你赋值的是第0个元素不是第一个元素。
- 4楼网友:一袍清酒付
- 2021-06-05 01:37
要是按楼主的程序的话,分析如下
main() // 主函数 { int n[3],j,k,l; //定义一维数组,和变量 for(j=0;j<3;j++); //该句不起作用,句后有; n[j]=0; n[j]=0; //赋值 l=3; // 赋值 for(j=0;j<1;j++) //当j小于1时进入循环,执行下一句 for(k=0;k<1;k++) //当k小于1时进入循环,执行下一句 n[k]=n[j]+1; // 让n[j]+1的值赋给n[k] printf("%d\n",n[1]); //输出
楼主的愿意可能是
main() { int n[3],j,k,l; for(j=0;j<3;j++) n[j]=0; l=3; for(j=0;j<3;j++) for(k=0;k<j;k++) n[k]=n[j]+1; printf("%d\n",n[1]); }
妄下结论,体谅