输入程序比赛参赛者的ID和解出的题数,依照题数递减的方式进行排序。
时间: 2024-03-06 19:48:21 浏览: 14
好的,以下是一个示例程序,可以实现你的需求:
```python
# 定义参赛者类
class Contestant:
def __init__(self, id, solved):
self.id = id
self.solved = solved
# 定义比赛结果排序函数
def sort_contestants(contestants):
contestants.sort(key=lambda x: x.solved, reverse=True)
# 测试数据
contestants = [
Contestant(1001, 5),
Contestant(1002, 3),
Contestant(1003, 7),
Contestant(1004, 1),
]
# 排序前的结果
print("排序前的结果:")
for c in contestants:
print(f"参赛者ID:{c.id},解出的题数:{c.solved}")
# 排序
sort_contestants(contestants)
# 排序后的结果
print("排序后的结果:")
for c in contestants:
print(f"参赛者ID:{c.id},解出的题数:{c.solved}")
```
运行结果:
```
排序前的结果:
参赛者ID:1001,解出的题数:5
参赛者ID:1002,解出的题数:3
参赛者ID:1003,解出的题数:7
参赛者ID:1004,解出的题数:1
排序后的结果:
参赛者ID:1003,解出的题数:7
参赛者ID:1001,解出的题数:5
参赛者ID:1002,解出的题数:3
参赛者ID:1004,解出的题数:1
```
以上程序中,我们定义了一个参赛者类 `Contestant`,包括参赛者ID和解出的题数两个属性。然后定义了一个排序函数 `sort_contestants`,使用 `sort` 函数进行排序,排序的关键字为参赛者的解题数量,需要按照递减的方式进行排序,所以使用了 `reverse=True` 参数。
最后,我们定义了一组测试数据,调用排序函数进行排序,并输出结果。