//刚开始看到这个题目,真不知道怎么下手,但我还是尝试去一步一步写,写着写着,思路也一步一步来了,虽来了,只能写出复杂的代码,请大佬指点
#include <stdio.h>
int main() {
int a = 0;
while (~scanf("%d", &a))
{
int i = 0;
for (i = 0; i < 3 * a; i++)//控制打印上半部分
{
int j = 0;
for (j = 0; j < 3 * a -1- i; j++)//控制每行打印的空格
{
printf(" ");
}
if (i % 3 == 0 )//控制打印一个*的数量
{
int k = 0;
printf("*");
for (k = 0; k < i / 3; k++)//需要打印多少次数5个空格
{
for (j = 0; j < 5; j++)//每次打印5个空格
{
printf(" ");
}
printf("*");
}
printf("\n");
}
else if (i % 3 == 1 )//控制打印两个*的数量
{
int k = 0;
printf("* *");
for (k = 0; k < (i - 1) / 3; k++)//需要打印多少次数3个空格
{
for (j = 0; j < 3; j++)//每次打印3个空格
{
printf(" ");
}
printf("* *");
}
printf("\n");
}
else if (i % 3 == 2)//控制每一层(不是每一行)末行打印*的数量
{
for (j = 0; j <= i; j++)
{
printf("* ");
}
printf("\n");
}
}
for (i = 0; i < a; i++)//控制打印下半部分
{
int j = 0;
for (j = 0; j < 3 * a - 1; j++)
{
printf(" ");
}
printf("*\n");
}
}
return 0;
}