刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

编程实现:

某比赛有N(2≤N≤50)名选手参加,给定每名参赛选手的编号(1到N)和比赛得分(0≤得分≤100),请按照分数从高到低的顺序排序,如果分数相同就按照编号排序,编号小的排前边。

输入描述:

第一行输入一个正整数N(2≤N≤50),表示参赛人数

第二行开始,共输入N行,每行两个正整数,分别表示参赛选手的编号和比赛得分(0≤得分≤100),正整数之间以一个空格隔开

输出描述:

按照排序规则,输出N行,每行两个正整数,分别表示编号和得分,正整数之间以一个空格隔开


样例输入:

3
3 84
1 87
2 84

样例输出:

1 87
2 84
3 84

使用微信搜索喵呜刷题,轻松应对考试!

答案:

br />```pythonN = int(input())scores = []for i in range(N):num, score = map(int, input().split())scores.append((num, score))scores.sort(key=lambda x: (-x[1], x[0]))for num, score in scores:print(f"num score")```

解析:

【喵呜刷题小喵解析】

该题要求实现的功能是,根据给定的N名选手的编号和得分,按照分数从高到低排序,如果分数相同则按照编号排序。

首先,我们需要读取输入的选手编号和得分,并将它们存储在一个列表中。这里,我们使用元组来表示每个选手的编号和得分,即`(num, score)`。

然后,我们使用Python的内置函数`sort()`对列表进行排序。在`sort()`函数中,我们传入一个`key`参数,指定排序的规则。这里,我们使用一个lambda函数作为`key`参数,它接受一个元组,返回两个值:`-x[1]`和`x[0]`。其中,`-x[1]`表示按照分数从高到低排序,`x[0]`表示如果分数相同则按照编号排序。

最后,我们遍历排序后的列表,输出每个选手的编号和得分。这里,我们使用Python的`print()`函数,将每个选手的编号和得分以空格分隔输出。

需要注意的是,在读取输入时,我们使用`map()`函数将输入的字符串转换为整数类型,以便后续的计算。
创作类型:
原创

本文链接:编程实现: 某比赛有N(2≤N≤50)名选手参加,给定每名参赛选手的编号(1到N)和比赛得分(0≤得

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share