栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

圣诞树浅描述(1)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

圣诞树浅描述(1)

牛客–圣诞树(1)
文章目录
  • 牛客--圣诞树(1)
    • @[TOC](文章目录)
  • 前言
  • 一、题目描述:
  • 二、运行示例:
  • 三、题目分析
  • 四、全部代码
  • 总结

跳转:牛客–圣诞树(2)

前言

大家好,今天给大家介绍两种使用C语言描绘圣诞树的方法,希望可以让大家在圣诞节来临之际可以收获心仪对象的芳心。

一、题目描述:

牧场大了,什么牛都有,今天是圣诞节,牛牛要打印一个漂亮的圣诞树送给想象中的女朋友,请你帮助他编写程序,实现妄想。
输入描述:
输入圣诞树的高度h,1<= h <= 100
输出描述:
输出对应的圣诞树

二、运行示例:



三、题目分析

·由三个示例可以先将圣诞树初步划分为两部分–树枝 和 树干
·树枝:树枝左边是一系列递减的空格,而右边都是由最初的图形堆叠而成
首先设置开始时的空格,输入1时最多两个空格,输入每增大1,最大空格数增加3,之后每行空格数减一

//输入 n
int sum = 3 * n - 1;//最大空格数

将初阶图形看做整体则有第一层1个,第二层2个,第三层3个。。。
那么我们就要确立初阶图形如何设立然后在两阶以上的树枝中,不止由图,每个图中间还有一部分空格间隔,那么我们又该如何控制空格的输出呢?
如果大家仔细观察就会发现,图和空格的形状是相同的,只不过是倒立的,而且每一行图和空格的和都为6,那么我们就可以将*图和空格同时输出,如下:

			printf("*     ");
			printf("* *   "); 
			printf("* * * ");

现在有了图形,就要判断什么情况输出哪一行,以及要输出多少次,如下

				//输入高度 n
		int sum_z=3*n;//树枝总行数
		for (int i = 1; i <= sum_z; i++)//树枝的行数
	{
		int k = (i - 1) / 3 + 1;//图形输出次数
		while (k--) {
			switch (i % 3) {
			case 1: printf("*     "); break;
			case 2: printf("* *   "); break;
			case 0: printf("* * * "); break;
			}
		}
		printf("n");
	}	

·树干:最后输出树干,输入多大数字就输出几行,这里要注意前面的空格,等于最大空格数*

for (int i = 0; i < n; i++){
		for (int j = 0; j < sum; j++)
			printf(" ");
		printf("*n");
}
四、全部代码

代码如下(示例):

#define  _CRT_SECURE_NO_WARNINGS 1
#include
int main(){
	int n = 0;
	scanf("%d", &n);
	int sum_z = 3 * n;//树枝总行数
	int sum = 3 * n - 1;//开始的空格最大值
	for (int i = 1; i <= sum_z; i++){//树枝的行数
		//开始的空格
		for (int r = 0; r <= sum - i; r++)
			printf(" ");
		int k = (i - 1) / 3 + 1;//图形输出次数
		while (k--) {
			switch (i % 3) {
			case 1: printf("*     "); break;
			case 2: printf("* *   "); break;
			case 0: printf("* * * "); break;
			}
		}
		printf("n");
	}
	for (int i = 0; i < n; i++){
		for (int j = 0; j < sum; j++)
			printf(" ");
		printf("*n");
	}
	return 0;
}
总结

以上为牛客中初级圣诞树的描述,在下一篇博客中我会使用另一种方法介绍难度更大也更加漂亮的圣诞树,感谢大家的关注和支持。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000640.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号