习题:唱歌比赛有n名选手,m名评委。 编程实现: (1)评分标准为:去掉两个最高分和两个最低分后取平均分。 (2)每位选手演唱完毕后,现场显示每位评委的打分, 和选手的最后得分。 (3)比赛结束后,从高分到低分,显示所
时间: 2024-05-04 12:18:42 浏览: 244
有选手的名次和得分。
以下是 Python 代码实现:
```python
import numpy as np
n = int(input("请输入选手人数:"))
m = int(input("请输入评委人数:"))
scores = [] # 保存每个选手的得分
for i in range(n):
print("请输入第%d位选手的名字:" % (i+1))
name = input()
print("请各位评委为%s打分:" % name)
s = []
for j in range(m):
score = float(input("第%d位评委的分数:" % (j+1)))
s.append(score)
s = sorted(s)[2:-2] # 去掉两个最高分和两个最低分
avg = np.mean(s) # 取平均分
scores.append((name, avg))
# 按得分从高到低排序
scores = sorted(scores, key=lambda x: x[1], reverse=True)
# 输出每位选手的得分和名次
print("比赛结果:")
for i, (name, score) in enumerate(scores):
print("第%d名:%s,得分:%.2f" % (i+1, name, score))
```
这个程序会先让用户输入选手人数和评委人数,然后依次输入每个选手的名字和每个评委的分数。程序会根据评分标准计算每个选手的得分,并将得分从高到低排序,最后输出每个选手的名次和得分。
阅读全文