题目内容
青年歌手大奖赛共有10名选手参加,并请了12名评委,在计算每位选手的平均分时,为了避免个别评委所给的极端分数的影响,必须去掉一个最高分跟一个最低分再求平均分,试设计一个算法解决问题.(假定分数为10分制,每位选手最低0分,最高10分)
解:程序步骤如下:
s=0;
max=0;
min=10;
for k=1:1:12
x=input(“x=”);
s=s+x;
if max<=x
max=x;
end
if min>=x
min=x;
end
a=s-max-min;
s=s/10;
disp(a)
思路分析:由于有12个评委,所以每位选手都会有12个分数,我们可以利用循环结构来解决这12个分数的输入,并用累积变量求出这12个数的和.本题的关键在于从这12个输入的分数中找出最大值和最小值,以便从总分中减去.由于每个选手的最低分0分,最高分10分,我们不妨设最大数为0,最小数为10,然后每输入一个分数,就进行一次比较,如输入的数大于0我们就用其代替最大数,如果输入的数小于10,就用它替换最小数,依次比较下去,就能找到12个数中的最大数和最小数,循环结束从总和中减去最大数和最小数,再除以10便可以得到该选手的平均分.
练习册系列答案
相关题目