伏黑·惠的圣诞树

前言:

今天写个图形的输出吧,由于进阶版的我还没弄明白,今天先来说一下基础版的吧哈哈,也是被自己蠢到。

进入正题:

题目:

描述
今天是圣诞节,牛牛要打印一个漂亮的圣诞树送给想象中的女朋友,请你帮助他实现梦想。
输入描述:
输入圣诞树的高度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日学习记录

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值