关于空格为什么是这样子的?for( j=i;j<5;j++ )
/* 观察每行的空格数量,补全循环条件 */
for( j=i;j<5;j++ )
1 | <br> |
/* 观察每行的空格数量,补全循环条件 */
for( j=i;j<5;j++ )
1 | <br> |
2015-07-21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #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 此时跳出了循环
举报