C语言中二重循环的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 18:30:51
执行以下程序,输出'#'号的个数是
#include<stdio.h>
main()
{
int i,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)
putchar('#');
这是一个二重循环,是如何循环的呢?结果是6,不明白循环的过程,所以想让高手写一下这个二重循环的过程是如何循环的,请高手指点。写下来哦!

二重循环的过程
第1轮:
i=1,i<5成立
j=2,j<=i不成立

第2轮:
i=2,i<5成立
j=2,j<=i成立,输出'#'号
j=3,j<=i不成立

第3轮:
i=3,i<5成立
j=2,j<=i成立,输出'#'号
j=3,j<=i成立,输出'#'号
j=4,j<=i不成立

第4轮:
i=4,i<5成立
j=2,j<=i成立,输出'#'号
j=3,j<=i成立,输出'#'号
j=4,j<=i成立,输出'#'号
j=5,j<=i不成立

第5轮:
i=5,i<5不成立

所以,输出'#'号共有6次

i,j的初始值是1和2

1)外循环i=1时,要求j<=i,显然不符合,不执行后面的语句
2)外循环i=2时,(j=2),执行一次后面的语句输出一个“#”
3)外循环i=3时,(j=2,3),...输出两个“#”
4)外循环i=4时,(j=2,3,4)...输出三个“#”

所以结果是6

首先如果你想联系循环的话我建议你换一个方法。就是通过不断画*来决定循环
#include<stdio.h>

main()
{
int i,j;

for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("*");
}
}
}
这样看你就会明白2重循环是怎么样循环的勒。首先外层循环到for(j