第34课 竞赛得分
竞赛得分(while循环、最高分、最低分、平均分)
编程世界在举行歌舞比赛,8位评委给表演的小精灵们打分,而8位评委的平均分将作为最终得分。设计一个输入程序,计算出小精灵们的表演平均分。打分范围为0~10分,允许有两位小数。
温故知新
使用while循环设计一个输入评委打分后计算出平均分的程序。
注意
(1)得分一共需要输入8次。
(2)分数输入要考虑有小数的情况。

运行程序:
请输入得分:9.9
请输入得分:8.9
请输入得分:7.8
请输入得分:9.5
请输入得分:9.4
请输入得分:9.8
请输入得分:9.6
请输入得分:9.7
最终计算平均分是:9.325
敲黑板
使用while循环时,需要考虑圆括号中的条件,什么时候需要进入循环,什么时候需要终止循环。
例如:需要输入8位评委的打分,一共需要输入8次。
num从0开始,每循环一次num值+1,最终设置的条件是num<8。
为什么是num<8而不是num<=8?
因为num从0开始,0、1、2、3、4、5、6、7,一共8个数字,循环了8次。
如果num从1开始,那么条件就需要设置为num<=8。
去除最高分和最低分
为了避免极端值对平均分的影响,比赛得分通常需要去掉最高分和最低分,再计算平均分。一起将程序优化一下吧!

运行程序:
请输入得分:199
分数为0~100,请重新输入
请输入得分:99
请输入得分:98
请输入得分:97
请输入得分:34
请输入得分:09
请输入得分:98
请输入得分:87
请输入得分:87
最终计算平均分是:83.5
(1)if(score>=0 && score<=100):判断输入的分数是否正确,如果分数超出范围,则num不自增,循环继续,不影响循环次数。
(2)
取出分数中的最大值和最小值,分别存储在max和min变量中。
(3)sum-max-min:总得分减去最高分和最低分,再计算平均分。

巩固练习
(1)请阅读以下代码,并回答问题。

在上述代码中,while循环将输出什么内容?()
A.1 2 3 4 5
B.1 3 5
C.2 4
D.1 2 3 4 5 6
(2)请补充以下代码的空白处,以完成程序,使其接收用户输入的整数,并反复询问用户是否继续输入整数,直到用户输入负数为止。然后,程序计算并显示输入的所有正整数的平均值。(使用while循环)

(3)修改程序去除最高分和最低分,使其能够接收用户指定要输入的分数数量,而不是固定为8个。用户应该首先输入要输入的分数数量,然后依次输入分数,最后计算平均分。

