自学内容网 自学内容网

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;
}

原文地址:https://blog.csdn.net/2301_78151773/article/details/140576387

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!