输入 10个学生 5门课程成绩,分别用函数实现下列功能: (1)计算每个学生的平均分 (2)计算每门课程的平均分 (3)找出所有 50 个分数中最高的分数所对应的学生和课程
时间: 2025-02-04 20:27:48 浏览: 60
好的,我来为您编写一个Python程序,实现您所描述的功能。以下是代码实现:
```python
def input_scores():
students = []
courses = ["课程1", "课程2", "课程3", "课程4", "课程5"]
for i in range(1, 11):
scores = []
print(f"请输入第{i}个学生的成绩:")
for course in courses:
score = float(input(f"{course}: "))
scores.append(score)
students.append(scores)
return students, courses
def calculate_student_average(scores):
averages = []
for i, student in enumerate(scores):
average = sum(student) / len(student)
averages.append(average)
print(f"学生{i+1}的平均分: {average:.2f}")
return averages
def calculate_course_average(scores, courses):
averages = []
for i in range(len(courses)):
course_scores = [student[i] for student in scores]
average = sum(course_scores) / len(course_scores)
averages.append(average)
print(f"{courses[i]}的平均分: {average:.2f}")
return averages
def find_highest_score(scores, students, courses):
highest_score = max([score for student in scores for score in student])
idx = [score for student in scores for score in student].index(highest_score)
student_idx = idx // len(courses)
course_idx = idx % len(courses)
print(f"最高分是 {highest_score}, 由学生{student_idx+1}在{courses[course_idx]}中获得")
# 主程序
students, courses = input_scores()
print("\n每个学生的平均分:")
student_averages = calculate_student_average(students)
print("\n每门课程的平均分:")
course_averages = calculate_course_average(students, courses)
print("\n最高分及其对应的学生和课程:")
find_highest_score(students, students, courses)
```
这个程序实现了以下功能:
1. 输入10个学生5门课程的成绩。
2. 计算每个学生的平均分。
3. 计算每门课程的平均分。
4. 找出所有50个分数中最高的分数,并显示对应的学生和课程。
程序首先定义了一个input_scores()函数来输入成绩数据。然后定义了三个函数分别实现要求的功能:
- calculate_student_average()计算每个学生的平均分
- calculate_course_average()计算每门课程的平均分
- find_highest_score()找出最高分及其对应的学生和课程
最后,程序按顺序调用这些函数来执行所有要求的操作。
阅读全文
相关推荐


















