WebGoC题解(12) 114.第4题 轮廓(比赛模拟题)
题目描述
学校准备在颁奖会把这次比赛的前10名的成绩用图形表示出来。小C记得去年是用一个直方图的形式表示的,就是以输入的次序把每个成绩的分数作为高,画一个宽度为20的矩形。 假如输入的10个成绩是:100 90 70 60 80 95 120 105 95 71 ,绘制的图形如下。
这个图形是做在一个展板上的,经过一年的风吹雨淋,展板上的线条都褪色了,只能看出展板的轮廓。请你使用GoC编程,画出展板的轮廓。具体形状参见输入输出样例。
输入格式
一行10个空格分隔开的正整数:分别表示10名同学的比赛成绩。
输出格式
相应的展板轮廓。
输入/输出例子1
输入:
100 90 70 60 80 95 120 105 95 71
输出:
输入/输出例子2
输入:
50 30 20 90 80 100 60 70 110 120
输出:
解题思路
用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)!