求解c语言for的用法。
发布网友
发布时间:2022-02-28 09:56
我来回答
共3个回答
热心网友
时间:2022-02-28 11:26
i=1时,满足i<5,进入j循环:
j=1,满足j<5,进入k循环:
k=1,满足k<5,进入k循环体:
判断当前i,j,k是否互异,是则打印找到的一组互不相同的i,j,k
k循环体执行结束,k++,判断k是否小于5,是则继续进入k循环体执行。
k=5时,k循环执行结束,j++,判断j是否小于5,是则再次执行k循环体(k从1再次加到5)
j=5时,j循环执行结束,i++,判断j是否小于5,是则再次执行j循环体(j从1再次加到5)
i=5时,i循环执行结束。
判断、输出仅在k循环体执行时发生,并非i=1的for循环执行时就立刻判断、输出。
如果了解单步调试就好了:程序执行过程、各变量的变化情况会随着单步调试非常直观清晰地显示出来。
热心网友
时间:2022-02-28 12:44
for(i=1;i<5;i++) /*以下为三重循环*/ -- 第一层
for(j=1;j<5;j++) -- 第二层
for (k=1;k<5;k++) -- 第三层
{ →→→→→→→→→→→→→→→ →↓↓
if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k); 第三层的函数题
} →→→→→→→→→→→→→→→→↑ ↑
上面已经标明,
但看第三层,那么第三层的函数体需要运行的次数为5次,就是当K=1时,条件满足,K=k+1;运行第三层的函数体,然后再判断for会运行5此,K=1\2\3\4\5,你能把单个for循环弄懂就好办了,但看第二层和第三层,把第三层整体看成第二层的内容就行了,第一层也这样
热心网友
时间:2022-02-28 14:18
先看最内层的循环,for ( k=1;k<5;k++ ) { ... }这是令k从1开始,每次循环k值加1,一共进行4次循环,每次循环k值取值为1,2,3,4;
再看j循环,令j从1开始,每次循环j加1,4次循环j分别等于1,2,3,4;循环体就是k循环,也就是j=1时执行k=1到4的循环1次,j=2时也执行一次,共执行4次;
i循环,i=1,2,3,4执行j循环4次。
这样我们可以看出:i=1时,j需要循环4次,j=1~4,每次j循环k要循环4次,k=1~4;
i=2时,j需要循环4次,j=1~4,每次j循环k要循环4次,k=1~4;
i=3时,j需要循环4次,j=1~4,每次j循环k要循环4次,k=1~4;
i=4时,j需要循环4次,j=1~4,每次j循环k要循环4次,k=1~4。
那么如果最内层循环不加条件一律打印i,j,k值的话会得到:
1,1,1,1,1,2,1,1,3,1,1,4,1,2,1,1,2,2,1,2,3,1,2,4
1,3,1,1,3,2,1,3,3,1,3,4,1,4,1,1,4,2,1,4,3,1,4,4
2,1,1,2,1,2,2,1,3,2,1,4,2,2,1,2,2,2,2,2,3,2,2,4
2,3,1,2,3,2,2,3,3,2,3,4,2,4,1,2,4,2,2,4,3,2,4,4
3,1,1,3,1,2,3,1,3,3,1,4,3,2,1,3,2,2,3,2,3,3,2,4
3,3,1,3,3,2,3,3,3,3,3,4,3,4,1,3,4,2,3,4,3,3,4,4
4,1,1,4,1,2,4,1,3,4,1,4,4,2,1,4,2,2,4,2,3,4,2,4
4,3,1,4,3,2,4,3,3,4,3,4,4,4,1,4,4,2,4,4,3,4,4,4
如果加上条件,保证三个一组的数据中不出现相同数的话,就是列出从1~4中挑选3个数进行排列的全部可能。