沙漏图形【

本文介绍如何使用C或C++编程语言,根据输入的层数n,生成正倒相接的星号三角形,即沙漏图形。程序实现中,首行顶格,星号间有一个空格,输出效果清晰。示例输入为3,输出为符合规格的沙漏图形。数据规模限制为1<= n <=50。
摘要由CSDN通过智能技术生成

沙漏图形

题目描述
问题:输入n,输出正倒n层星号三角形。首行顶格,星号间有一空格,效果见样例

输入样例:
3

输出样例:

* * *
 * *
  *
 * *
* * *

数据规模 1<= n <=50

/*沙漏图形:
       思路:打印沙漏图形,当时思路是因为*是间隔着的,所以先存储后打印
             1.分析找规律,上半部分与下半部分呈现对称性,先观察上半部分
                上半部分为倒三角形,起始 * 的列号与行号相同
                结束*号的行号+列号=row+1
             2.下半部分为正三角形,可以利用对称性
               以n=5为例,将6,7,8,9行分别映射到4,3,2,1行,他们的图形相同
               故存储下半部分图形时,重新设置一个k,k为映射到上半部分的行号
               再利用上半部分思路

注意:1.一定要记得初始化(连续输入好几个n,只有第一个图形能打印正确,
                          后面都会出现多余*图形,原来是数组没有初始化
                          但是数组是定义在循环里面的,也不太明白为什么
                          一定要初始化
      2.提交后出现运行错误提示,能通过80%的测试,结果是数组越界
       (注意n的大小
备注:这道题真真花了4+小时
      注释为别人的思路,之后再看
*/

#include<stdio.h>

#define maxN 100

int main()
{
   
    int n;
    while(scanf("%d",&n)!=EOF)
    {
   
        char a[maxN]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值