关于C语言,多层嵌套的for 循环我真的看不懂怎么办? 例如这个编程:

#include "stdafx.h" #include<stdio.h> int main(int argc, char* argv[]) { int n,i,j; char a=3; printf("n="); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=n-1;j>=i;j--) printf(" "); if(i==1) for(j=1;j<=n;j++) printf("%c",a); else { printf("%c",a); for(j=1;j<=n+(i-2)*2;j++) printf(" "); printf("%c",a); } printf("\n"); } for(i=1;i<=n-1;i++) { for(j=1;j<=i;j++) printf(" ");
好的,分行……
#include "stdafx.h"
#include<stdio.h>
int main(int argc, char* argv[])
{
int n,i,j;
char a=3;
printf("n=");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=n-1;j>=i;j--)
printf(" ");
if(i==1)
for(j=1;j<=n;j++)
printf("%c",a);
else
{
printf("%c",a);
for(j=1;j<=n+(i-2)*2;j++)
printf(" ");
printf("%c",a);
}
printf("\n");
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=i;j++)
printf(" ");
if(i==n-1)
for(j=1;j<=n;j++)
printf("%c",a);
else
{
printf("%c,a");
for(j=n+(n-1-i-1)*2;j>=1;j--)
printf(" ");
printf("%c",a);
}
printf("\n");
}
return o;
}

嵌套就一层一层的执行,需要有必要的做些标记:例如:
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
for(int k=0;k<4;k++)
printf(%d%d%d,i,j,k);
这个就是先 i=0——>j=0——>k=0 输出:0 0 0
i=0——>j=0——>k=1 输出:0 0 1
.......*(当k的4次结束后,j就加1 k接着从0开始)
i=0——>j=1——>k=0 输出:0 1 0
i=0——>j=1——>k=1 输出:0 1 1...(k的4次执行完后,j就再加1,成了2 )
.......*(当这样循环j的4次也结束后,i就加1,成了1,而j还是从0开始,k亦从0开始,知道最后i变成4)...输出:4 4 4后结束,这样说我觉得可以了,要是还有问题的话,可以再问,你只要耐心一点一步一步走就懂了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-13
  麻烦完整的排一下版,而且#include "stdafx.h" #include<stdio.h> int main(int argc, char* argv[]) { int n,i,j; char a=3; printf("n="); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=n-1;j>=i;j--) printf(" "); if(i==1) for(j=1;j<=n;j++) printf("%c",a); else { printf("%c",a); for(j=1;j<=n+(i-2)*2;j++) printf(" "); printf("%c",a); } printf("\n"); } for(i=1;i<=n-1;i++) { for(j=1;j<=i;j++) printf(" ");还少了东西
第2个回答  2012-11-13
for()

for()
}这是嵌套,也就是说for作为循环体。
for(){}
for(){}这是并列。
第3个回答  2012-11-13
把格式调整好。。。 其实不难。静下心来对照着输出结果一句一句的分析就好
第4个回答  2012-11-13
return o错了,是return 0啊,零啊

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网