
以上代码实现:

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,所以有三个*
是否明白了?
为什么星号会在空格中间啊