WebGoC题解(12) 114.第4题 轮廓(比赛模拟题)

题目描述

学校准备在颁奖会把这次比赛的前10名的成绩用图形表示出来。小C记得去年是用一个直方图的形式表示的,就是以输入的次序把每个成绩的分数作为高,画一个宽度为20的矩形。 假如输入的10个成绩是:100 90 70 60 80 95 120 105 95 71 ,绘制的图形如下。

114-1.png

这个图形是做在一个展板上的,经过一年的风吹雨淋,展板上的线条都褪色了,只能看出展板的轮廓。请你使用GoC编程,画出展板的轮廓。具体形状参见输入输出样例。

输入格式

一行10个空格分隔开的正整数:分别表示10名同学的比赛成绩。

输出格式

相应的展板轮廓。

输入/输出例子1

输入:

100 90 70 60 80 95 120 105 95 71

输出:

blob.png

输入/输出例子2

输入:

50 30 20 90 80 100 60 70 110 120

输出:

blob.png

解题思路 

用a[i]来代表第i个矩形的高,如果a[i]>a[i-1](比上一个矩形要高),pen向上画a[i]-a[i-1]的长度,

如果a[i]<a[i-1](比上一个矩形要矮),pen向下画a[i-1]-a[i]的长度。

参考答案 

int main()
{
    pen.speed(10).moveTo(-300,0).rt(90).hide();
    
    int a[11];
    a[0]=0; //把a[0]赋0,防止程序运行时发生错误

    for(int i=1;i<=10;i++)
    {
        cin>>a[i];
    }
    
    for(int i=1;i<=10;i++)
    {
        if(a[i]>a[i-1])//比上一个矩形高
        {
            pen.lt(90).fd(a[i]-a[i-1]).rt(90);
        }
        else//比上一个矩形矮或等于上一个矩形
        {
            pen.rt(90).fd(a[i-1]-a[i]).lt(90);
        }
        pen.fd(20);
    }
    pen.rt(90).fd(a[10]).rt(90).fd(200);

    return 0;
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 02:36:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 02:36:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 02:36:01       45 阅读
  4. Python语言-面向对象

    2024-07-21 02:36:01       55 阅读

热门阅读

  1. 2732. 找到矩阵中的好子集

    2024-07-21 02:36:01       20 阅读
  2. Gradle依赖管理 & Kotlin DSL解析

    2024-07-21 02:36:01       21 阅读
  3. 计算机网络重点--TCP三次握手

    2024-07-21 02:36:01       19 阅读
  4. Next.js静态导出与动态路由优化

    2024-07-21 02:36:01       20 阅读
  5. 分治算法(算法篇)

    2024-07-21 02:36:01       17 阅读
  6. 【时时三省】(C语言基础)选择语句和循环语句

    2024-07-21 02:36:01       16 阅读
  7. 跨平台webSocket模块设计技术解决方案

    2024-07-21 02:36:01       17 阅读