A25711. 编程实现:某比赛有N(2≤N≤50)名选手参加,给定每名参赛选手的编号(1到N)和比赛得分(0≤得分≤100),请按照分数从高到低的顺序排序,如果分数相同就按照编号排序,编号小的排前边。输入描述:第一行输入一个正整数N(2≤N≤50),表示参赛人数第二行开始,共输入N行,每行两个正整数,分别表示参赛选手的编号和比赛得分(0≤得分≤100),正整数之间以一个空格隔开输出描述:按照排序规则,输出N行…
填空题
较易
知识点
题目描述
编程实现:
某比赛有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参考答案
N = int(input())
s = []
for i in range(N):
h = input()
s.append(list(map(int,h.split(' '))))
for j in range(len(s)-1):
for i in range(len(s)-1):
if s[i][1] < s[i+1][1]:
temp = s[i]
s[i] = s[i+1]
s[i+1] = temp
elif s[i][1] == s[i+1][1]:
if s[i+1][0] < s[i][0]:
temp = s[i]
s[i] = s[i+1]
s[i+1] = temp
for i,j in s:
print(i,j)答案解析
评分标准:
4分:能正确输出第一组数据;
4分:能正确输出第二组数据;
4分:能正确输出第三组数据;
4分:能正确输出第四组数据;
4分:能正确输出第五组数据;
5分:能正确输出第六组数据;
上一题
下一题