关于空格为什么是这样子的?for( j=i;j<5;j++ )
/* 观察每行的空格数量,补全循环条件 */
for( j=i;j<5;j++ )
/* 观察每行的空格数量,补全循环条件 */
for( j=i;j<5;j++ )
2015-07-21
#include <stdio.h>
int main()
{
int i, j, k;
for(i=1; i<5; i++)
{
/* 观察每行的空格数量,补全循环条件 */
for( j=i ; j<5 ; j++ )
{
printf(" "); //输出空格
}
/* 观察每行*号的数量,补全循环条件 */
for( k=0 ; k<2*i-1 ; k++ )
{
printf("*"); //每行输出的*号
}
printf("\n"); //每次循环换行
}
return 0;
}1.i=1时:
首先 for(i=1; i<5; i++)开始循环,最起始i=1,
然后执行到for( j=i ; j<5 ; j++ ),
也就是说 for( j=1 ; j<5 ; j++ ),j在循环中的所有取值为1,2,3,4,共计4次,故输出4个空格
然后执行到for( k=0 ; k<2*i-1 ; k++) k的所有取值为0,共计1次,故输出一个*
2.i=2时
for(i=1; i<5; i++)开始循环,最起始i=2
然后执行到for( j=i ; j<5 ; j++ ),
也就是说 for( j=2; j<5 ; j++ ),j在循环中的所有取值为2,3,4,共计3次,故输出3个空格
3.以此类推
i=3 输出2个空格
i=4 输出1个空格
i=5 此时跳出了循环
举报