某青年歌手大奖赛,有6位选手进入决赛(分别用 1号、2号...6号表示),决赛由10位评委分别对 选手评分。请帮助赛事方编写一段计分程序,每 位选手去掉一个最高分和一个最低分之后,统计 剩下8个分数的平均分(即最终得分),最后向观 众显示所有选手的最终得分。 二维数组+二层循环
时间: 2024-12-16 12:19:04 浏览: 9
为了编写这个计分程序,我们可以创建一个二维数组来存储每位选手的10个原始分数,然后通过两层循环遍历这个数组,对于每个选手,我们先找到并删除最高分和最低分,接着计算剩余8个分数的总和,除以8得到平均分。以下是Python代码的一个示例:
```python
# 假设scores是一个10x6的二维数组,存储了每位选手的原始分数
scores = [
[95, 90, 92, 87, 93, 91],
[88, 91, 94, 85, 92, 89],
...,
[90, 85, 91, 89, 88, 92]
]
# 初始化一个空列表来存储每位选手的最终得分
final_scores = []
# 遍历每位选手
for i in range(6):
# 去掉最高分和最低分
sorted_scores = sorted(scores[i])
scores[i].remove(sorted_scores[0]) # 最高分
scores[i].remove(sorted_scores[-1]) # 最低分
# 计算并添加剩余分数的平均分
average_score = sum(scores[i]) / len(scores[i])
final_scores.append(average_score)
# 显示所有选手的最终得分
for i, score in enumerate(final_scores):
print(f"选手 {i+1} 的最终得分为:{score}")
阅读全文