#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; } for( j=i ; j<5 ; j++ ) j代表空格数,j=i i=1的时候,j=i=1,j<5->j++->j=2可是第一行明明是三个空格啊???不过第五行我可以理解,因为j退出了循环, 难道数空格要从最后一行开始数???
for循环先执行表达式一,然后执行表达式二,若表达式为真,继续执行,直到表达式为假的时候跳出循环,所以说,第一行j是5