马上就到圣诞节了,为了庆祝圣诞节我特地去刷了一道打印圣诞树的题目。
上面是我需要打印圣诞树的大致样子
接下来是代码
int main()
{
int a, i, j, k,n,c,b1=1,b2=1,b3=1;
scanf("%d", &n);
k = n * 3;//k为树枝一共多高
for (i = 0;i < k;i++)
{
for (j = 0;j < k;j++)//一层需要打印的次数。
{
if (j < k - i - 1)
printf(" ");//对应的每一层树枝最前面所需要打印的空格数
//圣诞树一共由三种类型组成:
//* 。
//* * 。
//* * * 。
// 这三种类型图案每隔三层则循环一次,且每次循环次数加1则出现时相对应在的层数出现个数也加1(b1,b2,b3)
// 之所以j+=5是因为每当三种图案类型出现都会比单个空格出现一次多5次
//之所以i+1是因为,起始时i为0,很难做到后续与3产生关系。
else if ((i + 1) % 3 == 1)
{
for (c = 0;c<b1;c++)
{
printf("* ");
j += 5;
}
b1++;
}
else if ((i + 1) % 3 == 2)
{
for (c = 0;c <b2;c++)
{
printf("* * ");
j += 5;
}
b2++;
}
else if ((i + 1) % 3 == 0)
{
for (c = 0;c <b3;c++)
{
printf("* * * ");
j += 5;
}
b3++;
}
}
printf("\n");//每层换行。
}
for (i = 0;i < n;i++)
{//n为树干长度
for (j = 0;j < k;j++)
{//树干
if (j == k-1)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
以上便是打印圣诞树的结果,希望各位喜欢。如果有可以改进的地方,欢迎大家指出。