题目内容
青年歌手电视大赛共有10名选手参加,并请了12名评委,在计算每位选手的平均分数时,为了避免个别评委所给的极端分数的影响,必须去掉一个最高分和一个最低分后再求平均分.试设计一个算法解决该问题,要求画出程序框图,写出程序(假定分数采用10分制,即每位选手的分数最高分为10分,最低分为0分).
解:由于共有12位评委,所以每位选手会有12个分数,我们可以用循环语句来完成这12个分数的输入,同时设计累加变量求出这12个分数的和,本问题的关键在于从这12个输入分数中找出最大数与最小数,以便从总分中减去这两个数.由于每位选手的分数都介于0分和10分之间,我们可以先假设其中的最大数为0,最小数为10,然后每次输入一个评委的分数,就进行一次比较,若输入的数大于0,就将之代替最大数,若输入的数小于10,就用它代替最小数,依次下去,就能找出这12个数中的最大数与最小数,循环结束后,从总和中减去最大数与最小数,再除以10,就得到该选手最后的平均分.
程序框图如图:
![]()
程序如下:s=0
i=1
max=0
min=10
DO
INPUT x
s=s+x
IF max<=x THEN
max=x
END IF
IF min>=x THEN
min=x
END IF
i=i+1
LOOP UNTIL i>12
s1=s-max-min
a=s1/10
PRINT a
END
课堂小结
(1)学会两种循环语句的应用.
(2)熟练应用两种循环语句编写计算机程序,巩固算法应用.
练习册系列答案
相关题目