第6关 - 魔法学院第14课

利用循环处理多个数据读入和计算。

87.乐谱 (魔法学院第14课)

题目描述

编程任务:

输入n个音符数值,画n个音符。每个音符用宽度是10,颜色由输入的数值确定,高度是颜色号的30倍。例如输入:

4

3 2 1 2

可以画出下面图形

image.png

4个矩形宽度10,颜色分别是3、2、1、2,高度分别是90、60、30、60。

相邻矩形的中心在一条直线上,距离15。

输入格式 第一个正整数n,表示多少个矩形。

后面n个整数,表示每个矩形的颜色号。

输出格式 相应图形。

输入/输出例子1

输入:

7

1 2 3 4 3 2 1

输出:

image.png

题解

int main()
{ 
 	int n, a;
	cin >> n ;  // 输入个数
	p.hide().up();
	for( int i=0; i < n; i++)
	{
		cin>> a ; // 输入音符
		pen.rr(10, a*30 , a); // 画音符
		p.rt(90).fd(15).lt(90);
	}
	return 0;
}

88.同心圆 (魔法学院第14课)

题目描述

编程任务:输入n个圆的半径,画n个红色同心圆。每个圆的上边距离10的地方,用pen.text()命令输出半径的值。例如输入:

3

30 60 100

可以画出下面图形(包括数字)

image.png

输入格式 一个正整数n,表示半径个数。

后面n个正整数,表示每个圆的半径。

输出格式 相应图形。

输入/输出例子1

输入:

2

120 50

输出:

image.png

题解

int main()
{ 
	int n,r ;
	cin >> n;  // 输入个数	
    p.up().hide().speed(10);
	for( int i=0; i < n; i++)
	{
		cin >> r ;  // 输入半径
		pen.o( r,1 ); // 画圆
		pen.fd(r+10); //到上面
		pen.text(r);
		pen.bk(r+10 );  //回到圆心
	}
	return 0;
}

89.显示分数高低 (魔法学院第14课)

题目描述

编程任务:设计一个判分程序,用画图形显示分数是否及格。

输入 n 个人的语文分数,分数小于 60 的用1号红色矩形表示;分数大于等于 60 的用10号绿色矩形表示。

例如运行程序后输入:

5

90 75 50 60 35

可以画出下面图形:

image.png

矩形宽度20,高度是分数的值,相邻矩形中间的缝隙宽度10。

输入格式 第一个整数n表示多少学生;

下面n个整数表示分数。

输出格式 相应图形。

输入/输出例子1 输入:

5

150 90 50 80 60

输出:

image.png

题解

int main()
{ 
	int n, s, a;
	cin >> n;  // 输入个数
    p.up().hide();
	for( int i=0; i < n; i++)
	{
		cin >>s  ; // 输入分数
		if ( s<60 ) a=1 ;
		else a = 10;
		pen.fd( s/2 ).rr(20,s,a);
		pen.bk(s/2).rt(90).fd(30).lt(90);  
	}
	return 0;
}