一个班有30名同学,每名同学有三门课程,编写若干函数实现以下功能:1.三门课程成绩录入;2.计算每位同学的总分;3.依据总分,进行升序排序;4.输出前10位同学的三门课成绩和总分。
时间: 2024-04-29 09:27:11 浏览: 133
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
好的,这是一道关于班级成绩的问题,现在我帮您解答。
以下是代码实现:
```python
#录入30名同学的三门课成绩
def input_scores():
scores = []
for i in range(30):
print("请输入第", i+1, "名同学的成绩:")
score = []
score.append(int(input("第一门成绩:")))
score.append(int(input("第二门成绩:")))
score.append(int(input("第三门成绩:")))
scores.append(score)
return scores
#计算每位同学的总分
def cal_total(scores):
totals = []
for score in scores:
totals.append(sum(score))
return totals
#进行升序排序
def sort_scores(scores, totals):
length = len(totals)
for i in range(length - 1):
for j in range(i + 1, length):
if totals[i] > totals[j]:
totals[i], totals[j] = totals[j], totals[i]
scores[i], scores[j] = scores[j], scores[i]
#输出前10位同学的成绩和总分
def output_scores(scores, totals):
print("前10名同学的成绩如下:")
for i in range(10):
print("第", i+1, "名同学的成绩:", scores[i], ",总分为:", totals[i])
#主函数
if __name__ == '__main__':
scores = input_scores()
totals = cal_total(scores)
sort_scores(scores, totals)
output_scores(scores, totals)
```
希望能够帮到您,如果您有其他问题,欢迎随时问我。
阅读全文