#include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n=0; scanf("%d",&n); int k=0,i=0; for(k=1-n;k<=n-1;k++)//从最上层一直到最下层 { //先判断上面4层 //因为k=-4,k=-3,k=-2,k=-1,k=0 //故可以写成i=n-abs(k) i=n-abs(k);//i为行数 //因为j的循环等于k的绝对值,那么j从1开始,则j应该小于等于abs(k) //而i=n-abs(k),故n+1-(n-abs(k))等于j,即n+1-i for(int j=1;j<=n-i;j++) { printf(" "); } //每行打印的星星数等于2*(n-abs(k))-1 for(int j=0;j<2*i-1;j++) { printf("*"); } printf("\n"); } printf("\n"); //system("pause"); } |
Double click to view unformatted code.