以上代码实现:
i为行,j为空格,k为*号。
我觉得应该是k+=2 (第11行),因为每行加2。j的初始值为3,因为第一行是3,然后大于0,每一行减1,所以j--,但是错误,图上是j++,为何?
我的代码是:
#include <stdio.h> int main() { int i, j, k; for(i=1; i<5; i++) { for(j=3;j>0;j--) { printf(" "); //输出空格 } for(k=1;k<2*i-1;k+=2) { printf("*"); //每行输出的*号 } printf("\n"); //每次循环换行 } return 0; }
求解释。
你仔细阅读此程序代码,j的循环每次都是输出三个空格
i=1:ooo(三个空格),此时k<1,所以只输出一个*
i=2:ooo(三个空格),此时k<3,所以有两个*
i=3:ooo(三个空格),此时k<5,所以有三个*
是否明白了?
为什么星号会在空格中间啊