#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;
}
新手理解哈哈,

京公网安备 11010502036488号