#include <stdio.h> int main() { int n,i,j;//n表示输入的层数; int x;//x表示空格数量,空格数量=3*层数-1 scanf("%d",&n); x=3*n-1; for(i=1;i<=n;i++)//n层,就有n次循环,一次循环输出一层 { for(j=1;j<=x;j++)//第一行空格数 { printf(" "); } for(j=1;j<=i;j++)//第一行都是(*加上五个空格),第一层就输出一个,第n层就输出n个(*+五个空格) { printf("* "); } printf("\n"); for(j=1;j<=x-1;j++)//第二行空格数 { printf(" "); } for(j=1;j<=i;j++)//第二行都是(*空格*加三个空格),同上,第n层就输出n个(*空格*加三个空格) { printf("* * "); } printf("\n"); for(j=1;j<=x-2;j++)//第三行空格数 { printf(" "); } for(j=1;j<=i;j++)//第三行都是(*空格*空格*空格),同上,第n层就输出n个(*空格*空格*空格) { printf("* * * "); } printf("\n"); x-=3;//下一层的第一行空格数比上一层的第一行空格数少3 } for(i=1;i<=n;i++)//树的尾巴数,n层就有n个尾巴,就用n次循环,一次循环输出一个尾巴 { for(j=1;j<=3*n-1;j++)//尾巴前的空格数为3*层数-1 printf(" "); printf("*\n"); } return 0; }
新手理解哈哈,