根据四门科目成绩查找百分比最高人员的Python编程题
问题需求
编写程序根据人员的科目成绩,查找成绩百分比最高的人员。
由于所有人员的考试科目、单科满分规则完全一致,成绩百分比高低与四门科目总分高低等价,直接比较总分即可得到正确结果。
输入规则
- 输入第一行为整数,代表后续输入的数据行数n
- 后续共n行,每行为空格分隔的内容,依次为人员姓名、该人员四门科目的考试成绩
输出规则
输出成绩百分比最高的人员姓名。
输入输出示例
输入样例
4 Manoj 30 40 45 63 Shivam 38 29 45 60 Siddheshwar 38 35 39 45 Ananya 45 29 30 51
输出样例
Manoj
样例计算说明:四人四门成绩总分分别为178、172、157、155,Manoj总分最高,对应成绩百分比最高。
原有参考代码问题
给出的参考代码存在多处逻辑错误,无法实现需求:
- 未读取第一行的行数参数n,固定循环4次读取内容,当n不等于4时会直接读取错误数据
- 重复使用
marks变量接收四个科目的成绩,未做成绩数值转换、求和计算,完全没有实现成绩比较逻辑 - 直接遍历打印所有读取到的姓名,不符合“仅输出最高分人员”的要求
可直接运行的正确实现代码
n = int(input()) max_total = -1 top_name = "" for _ in range(n): parts = input().split() current_name = parts[0] current_total = sum(map(int, parts[1:])) if current_total > max_total: max_total = current_total top_name = current_name print(top_name)
代码采用边读取边比较的逻辑,无需存储全量人员数据,内存占用低,兼容所有合法输入场景。
内容的提问来源于stack exchange,提问作者ace lati
相关产品推荐
相关产品推荐

