作业比赛编号 : 100000577 - 《算法笔记》3.3小节——入门模拟->图形输出 问题 A: 输出梯形

本文介绍了一个使用C++编程语言解决梯形输出问题的算法。输入一个整数h,程序将输出一个高度为h,上底边也为h的梯形。文章详细解析了如何通过循环和条件判断来实现图形的正确输出,并提供了完整的代码示例。

问题 A: 输出梯形

[命题人 : 外部导入]

时间限制 : 1.000 sec  内存限制 : 32 MB

解决: 1255提交: 3509统计

题目描述

输入一个高度h,输出一个高为h,上底边为h的梯形。

输入

一个整数h(1<=h<=1000)。

输出

h所对应的梯形。

样例输入 Copy

5

样例输出 Copy

        *****
      *******
    *********
  ***********
*************

思路:h行 第一行有h列星号*。发现列数col=行数row+2(row-1),每行输出的*递增2,空格递减2。利用循环输出图形。

注意:虽然题目没说明输入有多组,但是这里要用while循环判断EOF,否则不能通过,还要注意最后的换行,看是每一行打印完都换行,还是除了最后一行不换行,前面都换行。

#include<cstdio>
int main(){
    int row,col;//有h行,h+2*(h-1)列
    while(~scanf("%d",&row)){//h即为行数row 注意判断输入是否结束,codeup是多点测试
    col=row+2*(row-1);
    int add=0;
    for(int i=0;i<row;i++)//第1行输出col-h列空格,h列*,之后输出的空格每行递减2,*每行递增2列,
    {
        for(int k=0;k<col-row-add;k++)
        {
            printf(" ");
        }
        for(int j=0;j<row+add;j++){
            printf("*");
        }
        printf("\n");
        add=add+2;
    }
  }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值