图形示例:
首先:
这需要两个for循环,一个控制行数,一个控制每一行的星星个数。
现在先不关心它是如何变成那个图形的,只关心每一行的个数你会发现:
第一行 1个
第二行 3个
第四行 7个
一次类推第n行就是2*n-1个所以限制每一行星星的条件就是每一行的星星不能超过2*n-1个
所以你现在就可以先这莫写:
#include<stdio.h>
int main(){
int i,j,k;
for(i=1;i<=5;i++){//控制行数
for(j=1;j<=2*i-1;j++){//每一行星星的个数
printf("*");
}
printf("\n");//每一行结束就换行
}
return 0;
}
其次:
现在就是空格的问题,空格的位置比较重要,每一行都有空格且数量不同
第一行:4
第二行:3
第三行:2
依次类推到最后一行第5行:5-5=0个空格所以每行的空格数都不大于5-i个。
因为每一行都有,这也应该创建一个新的for循环且放到控制行数的for循环里面吗
并且在控制星星的for循环前面,于是就有:
#include<stdio.h>
int main(){
int i,j,k;
for(i=1;i<=5;i++){
for(k=1;k<=5;k++){
if(k<=5-i)printf(" ");
}
for(j=1;j<=2*i-1;j++){
printf("*");
}
printf("\n");
}
return 0;
}
由此可得: