前言:
今天写个图形的输出吧,由于进阶版的我还没弄明白,今天先来说一下基础版的吧哈哈,也是被自己蠢到。
进入正题:
题目:
描述
今天是圣诞节,牛牛要打印一个漂亮的圣诞树送给想象中的女朋友,请你帮助他实现梦想。
输入描述:
输入圣诞树的高度h,
1<=ℎ<=100
输出描述:
输出对应的圣诞树
示例1
输入:
1
输出:
*
* *
* * *
*
示例2
输入:
2
输出:
*
* *
* * *
* *
* * * *
* * * * * *
*
*
示例3
输入:
3
输出:
*
* *
* * *
* *
* * * *
* * * * * *
* * *
* * * * * *
* * * * * * * * *
*
*
*
代码及解析:
#include<stdio.h>
//由题目给的示例我们不难看出他是由n个小三角形堆叠而成的,
那么我们就可以以少推多,找到规律。
int main()
{
int a = 0;
scanf("%d", &a);
//确定空格的数量:
int b = a * 3;
//每次换行打印都会少一个空格,所以b--;
b--;
int k = b;
for (int i = 1; i <= a; i++)
{
//开始第一行打印:
for (int j = 0; j < b; j++)
{
printf(" ");
}
--b;
for (int j = 1; j <= i; j++)
{
printf("* ");
}
printf("\n");
//第二行:
for (int j = 0; j < b; j++)
{
printf(" ");
}
--b;
for (int j = 1; j <= i; j++)
{
printf("* * ");
}
printf("\n");
//第三行:
for (int j = 0; j < b; j++)
{
printf(" ");
}
b--;
for (int j = 1; j <= i; j++)
{
printf("* * * ");
}
printf("\n");
}
//打印树把柄,它和树尖在同一竖直线上,所以空格数与第一次打印的空格数相等:
for (int i = 1; i <= a; i++)
{
for (int j = 0; j < k; j++)
{
printf(" ");
}
printf("*\n");
}
return 0;
}
遗言:
在努力推算进阶版的写法,争取明天向大家汇报¥-¥-¥。
2023年12月20日学习记录