习题:唱歌比赛有n名选手,m名评委。 编程实现: (1)评分标准为:去掉两个最高分和两个最低分后取平均分。 (2)每位选手演唱完毕后,现场显示每位评委的打分, 和选手的最后得分。 (3)比赛结束后,从高分到低分,显示所有选手的成绩。
时间: 2024-04-30 09:18:56 浏览: 134
以下是实现上述功能的 Python 代码:
``` python
import random
# 输入参赛选手人数和评委人数
n = int(input("请输入参赛选手人数:"))
m = int(input("请输入评委人数:"))
# 初始化得分列表
scores = [[] for i in range(n)]
# 为每个选手生成评委的打分
for i in range(n):
print(f"\n第{i+1}位选手上场,请评委打分:")
for j in range(m):
score = random.randint(60, 100)
scores[i].append(score)
print(f"第{j+1}位评委打分:{score}")
# 计算选手最后得分
scores[i].sort()
scores[i] = scores[i][2:-2]
avg_score = sum(scores[i]) / len(scores[i])
print(f"最后得分:{avg_score:.2f}")
# 按照最后得分从高到低排序并输出
print("\n比赛结果:")
results = [(i+1, sum(scores[i])/len(scores[i])) for i in range(n)]
results.sort(key=lambda x: x[1], reverse=True)
for i, result in enumerate(results):
print(f"第{i+1}名:选手{result[0]},得分:{result[1]:.2f}")
```
程序运行时,会先让用户输入参赛选手人数和评委人数,然后依次为每个选手生成评委的打分,并计算最后得分。最后,按照最后得分从高到低排序并输出比赛结果。
阅读全文