关于嵌套FOR循环的!

OpenOffice_org 2005-04-06 02:10:19
#include<stdio.h>
main()
{
int i,j,k;
i=0;
printf("Enter no.of rows:");
scanf("%d",&i);
printf("\n");
for(j=0;j<i;j++)
{
printf("\n");
for(k=0;k<=j;k++)
printf("*");
}
}

/*这段代码是书上写的,指的是嵌套FOR循环,假设i=5,下面是它的输出结果:
*
**
***
****
*****

我始终不解,为什么会出现递增的星号呢?我理解应是这样呀!
*
*
*
*
*
我可能对嵌套FOR循环搞糊涂了!

请指教,谢谢!
...全文
360 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
OpenOffice_org 2005-04-06
  • 打赏
  • 举报
回复
谢谢,楼上的几位朋友,

我想通了,分不多,但还是谢谢你们。
xdlhf 2005-04-06
  • 打赏
  • 举报
回复
嵌套循环是要在内层循环执行完后,才返回继续执行外循环的代码。
jiabin1117 2005-04-06
  • 打赏
  • 举报
回复
for(j=0;j<i;j++)
{
printf("\n");
for(k=0;k<=j;k++)
printf("*");
}
i=5)
j=0时:输出一个“*”;
j=1时:k=0,一次循环输出一个“*”,k++后,k=1,满足循环条件(k<=j),继续循环,再输出一个
“*”;也就是说,当j=1时,输出的是两个“*”。
j=2时:........按照上面的推。
OpenOffice_org 2005-04-06
  • 打赏
  • 举报
回复
对不起, 我可还是想不通,

j不同和第二个FOR语句没什么关系呀,
j只是影响第二个FOR什么时候退出,而和打出几个*号无关呀?

请指教,谢谢!
kobefly 2005-04-06
  • 打赏
  • 举报
回复
for(j=0;j<i;j++)
{
printf("\n");
for(k=0;k<=j;k++)
printf("*");
}
for(k=0;k<=j;k++)
printf("*");
这里,如果j =1;
就打2个
如果j = 2
就打3个*啊,嵌套了啊
astrophor 2005-04-06
  • 打赏
  • 举报
回复
for(k=0;k<=j;k++)
printf("*");
每输出一行都执行这条语句,注意j在每次执行中都不同,在外循环中加1
所以每行输出*的个数不同
ljq14 2005-04-06
  • 打赏
  • 举报
回复
对的,楼上的说得对,是因为嵌套了,就要在J每递增一次把里面的循环做一次,很明白吧~~~~:)
Flood1984 2005-04-06
  • 打赏
  • 举报
回复
外循环每做一次,内循环要做(k=0;k<=j;k++)次(就是j+1次)
所以第j行有j+1个
OpenOffice_org 2005-04-06
  • 打赏
  • 举报
回复
我知道内部还有一个循环,
但我就是不明白为什么会输出递增的*,

请再指教,谢谢!
junguo 2005-04-06
  • 打赏
  • 举报
回复
for(k=0;k<=j;k++)
printf("*");

原因在这儿,内部还有一个循环!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧