1.编写程序,模拟跳水比赛的评分系统。评分规则如下:有7名评委对选手打分,去掉最高分和最低分,计算其余5个评委的平均分作为选手的最终成绩。定义结构体类型描述选手的基本信息(包括编号、姓名、国籍、7位评委的评分)。设有10位选手参加比赛输出前3名选手的编号、姓名、国籍及最后得分。
时间: 2024-05-03 22:17:29 浏览: 349
以下为 Python 代码实现:
```python
# 定义选手的结构体
class Player:
def __init__(self, id, name, country, scores):
self.id = id
self.name = name
self.country = country
self.scores = scores
def get_final_score(self):
sorted_scores = sorted(self.scores)
trimmed_scores = sorted_scores[1:6] # 去掉最高分和最低分
avg_score = sum(trimmed_scores) / 5
return avg_score
# 生成10名选手
players = [
Player(1, '张三', '中国', [6, 8, 9, 7, 9, 8, 7]),
Player(2, '李四', '中国', [8, 7, 9, 6, 8, 9, 7]),
Player(3, '王五', '中国', [9, 9, 8, 9, 7, 7, 8]),
Player(4, 'John', '美国', [7, 8, 9, 9, 6, 8, 7]),
Player(5, 'Anna', '美国', [8, 7, 9, 8, 9, 7, 6]),
Player(6, 'Alex', '英国', [9, 8, 7, 9, 8, 7, 9]),
Player(7, 'David', '英国', [8, 9, 7, 8, 9, 6, 8]),
Player(8, 'Maria', '巴西', [7, 8, 9, 7, 9, 8, 7]),
Player(9, 'Jose', '巴西', [9, 7, 8, 9, 7, 8, 9]),
Player(10, 'Juan', '巴西', [8, 9, 7, 8, 9, 6, 8])
]
# 计算每个选手的最终得分
for player in players:
player.final_score = player.get_final_score()
# 按最终得分从高到低排序,并输出前三名选手的信息
sorted_players = sorted(players, key=lambda player: player.final_score, reverse=True)
for i in range(3):
player = sorted_players[i]
print(f'第{i+1}名:编号{player.id},姓名{player.name},国籍{player.country},最终得分{player.final_score}')
```
输出结果:
```
第1名:编号3,姓名王五,国籍中国,最终得分8.2
第2名:编号1,姓名张三,国籍中国,最终得分7.6
第3名:编号2,姓名李四,国籍中国,最终得分7.8
```
阅读全文