求讲解for语句

来源:百度知道 编辑:UC知道 时间:2024/05/29 19:10:36
编程序输出下列图形。
**
****
******
********

程序清单如下:
void main()
{int i,j;
for(i=1;i<=4;i++)
{for(j=1;j<=i-1;j++) printf(" ");
for(j=1;j<=2*i;j++) printf("*");
printf("\n");
}
}

其中:for(j=1;j<=i-1;j++) printf(" ")这句是控制输入空格的:在第一行是输入0个空格,第二行1个空格,第三行2个空格,第四行是3个空格。
第一次j<=i-1 i-1=0表达式为假,不输入这个是正常的。但是下一个循环是j++后变成了2,而i-1=1,这还是不成立啊,怎么有空格输入啊?

另外,j<=i-1即使是成立的话,也只输入一个空格啊,为什么在第二行是1个,第三行是2个啊,第四行是3个啊?求讲解,谢谢!

void main()
{int i,j;
for(i=1;i<=4;i++)
{for(j=1;j<=i-1;j++) printf(" "); 。。 1
for(j=1;j<=2*i;j++) printf("*");
printf("\n");
}
}

一循环执行大致情况如下:
外循环次数 i-1 j 空格数
1 0 (1,0) 0
2 1 (1,1) 1
3 2 (1,2) 2
4 3 (1,3) 3
(1,0)代表 (1<=0),该比较无效 不输出空格
(1,1)代表(1<=1)有效 输出一个空格
下同

…………我晕倒……你到底想输出的是什么啊……你的i值第一次的时候是1,第二次的时候是2,第三次是3,第四次是4啊……
i值一直在加啊……