为什么i要等于j呢,空格这么看出来的呢?
是j=i,将i的值赋给j,其中i表示行数,从首行开始空格数分别为4,3,2,1;;;;;“*”号数分别为1,2,3,4
由此可知
#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; }
在原题当中呢,首行空格其实是3也有可能,但是
#include <stdio.h> int main() { int i, j, k; for(i=1; i<5; i++) { /* 观察每行的空格数量,补全循环条件 */ for( ? ; ? ; ? ) { printf(" "); //输出空格 } /* 观察每行*号的数量,补全循环条件 */ for( ? ; ? ; ? ) { printf("*"); //每行输出的*号 } printf("\n"); //每次循环换行 } return 0; }
这是一开始的代码,其实在实验的时候可以直接将j赋值,本地编译器会通过,也没有问题,
其实让j=i,每一次循环j都会进行初始化