课程首页 › 第3部分 › 第34课

第34课 竞赛得分

第3部分 不辞辛苦 · 循环结构· 知识点:while循环、最高分、最低分、平均分

竞赛得分(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个。用户应该首先输入要输入的分数数量,然后依次输入分数,最后计算平均分。