解题思路:
将所有信息存放至二维数组并依据总分,语文成绩降序排序,依据学号升序排序
注意事项:
参考代码:
def scholarship_ranking():
# 读取学生数量
n = int(input().strip())
# 初始化二维数组
students = []
for i in range(1, n + 1):
# 读取每行学生的三科成绩
scores = list(map(int, input().strip().split()))
# 计算总分并保存到二维数组
total = sum(scores)
students.append([i, scores[0], scores[1], scores[2], total]) # (学号, 语文, 数学, 英语, 总分)
# 排序
# 根据总分降序排序,语文成绩降序排序,学号升序排序
students.sort(key=lambda x: (-x[4], -x[1], x[0]))
# 输出前五名学生的学号和总分
for student in students[:5]:
print(student[0], student[4])
if __name__ == "__main__":
scholarship_ranking()
0.0分
0 人评分
【计算两点间的距离】 (C语言代码)浏览:927 |
C语言训练-排序问题<1> (C语言代码)浏览:636 |
WU-链表数据求和操作 (C++代码)浏览:1382 |
字符逆序 (C语言代码)浏览:506 |
C二级辅导-阶乘数列 (C语言代码)浏览:583 |
单词个数统计 (C语言代码)浏览:1046 |
陶陶摘苹果2 (C语言代码)浏览:650 |
【计算直线的交点数】 (C语言代码)浏览:984 |
1231题解(注意理解“输入多个测试实例”)浏览:830 |
【计算球体积】 (C语言代码)浏览:1619 |