每行输出的空格数到底是多少?
#include <stdio.h> int main() { int i, j, k; for(i=1; i<5; i++) { for(j=i; j<5; j++) //注意此行的第2个表达式,是j<5,而不是j<4。 { printf(" "); } for(k=0; k<2*i-1; k++) { printf("*"); } printf("\n"); } return 0; }
空格数依次应该是4、3、2、1,也就是说,每一行的空格数=(最后一行的*号数-该行的*号数)/2+1。
这也就是代码中j<5而不是j<4的原因。