这是我的答案。。标准答案为 (j=i;j<5;j++) 这样不就输出了5个空格? #include <stdio.h> int main() { int i, j, k; for(i=1; i<5; i++) { /* 观察每行的空格数量,补全循环条件 */ for( j=1 ; j<=(4-i) ; j++ ) { printf(" "); //输出空格 } /* 观察每行*号的数量,补全循环条件 */ for( k=1 ; k<=(2*i-1) ; k++ ) { printf("*"); //每行输出的*号 } printf("\n"); //每次循环换行 } return 0; }
你的答案是正确的,要想达到这个结果,可以有不同的思路和途径
for( j=1 ; j<=(4-i) ; j++ )
然后,例如j<=(4-i),第一次循环,i=1,循环了三次,就输出三个空格,然后接着执行下一个对*的输出,i=1,k<=(2*i-1)即i<=1,输出一个*,此时第一行就有三个空格然后一个*,然后,换行符,下一行,同理。然后四次之后,得到答案。