.某班有10个学生,进行数学、语文、英语以及C++科目的考试,编写程序: 1)讲考试成绩输入一个二维数组 2)求每一门课的平均成绩、不及格人数以及每门课的最高分和最低分 3)求每个学生的平均成绩、总分不及格门数 4)按学生平均成绩的高低排序并输出。
时间: 2024-12-02 21:22:26 浏览: 147
这是一个涉及到数据结构和算法的问题,我们可以使用Python来模拟这个场景。首先,我们需要创建一个二维数组存储每个学生的各科目成绩。然后,分别计算每门课的平均分、不及格人数、最高分和最低分。接着统计每个学生的总分和平均成绩,并找出不及格的门数。最后,我们按照平均成绩对学生进行排序。
以下是简化的Python代码示例:
```python
# 假设学生成绩存储在一个二维列表中
scores = [
[85, 90, 78, 92],
[96, 88, 93, 95], # 学生1
[70, 65, 55, 80], # 学生2
# 其他学生...
]
# 计算各科成绩
def calculate_subject_scores(scores):
num_students, _ = len(scores), len(scores[0])
avg_scores, min_scores, max_scores, fail_counts = {}, {}, {}, {}
for subject in range(len(scores[0])):
total = sum(score[subject] for score in scores)
avg = total / num_students
min_score, max_score = min(score[subject] for score in scores), max(score[subject] for score in scores)
avg_scores[f'Subject {subject+1}'] = avg
min_scores[f'Subject {subject+1}'] = min_score
max_scores[f'Subject {subject+1}'] = max_score
fail_counts[f'Subject {subject+1}'] = sum(1 for score in scores if score[subject] < 60)
return avg_scores, min_scores, max_scores, fail_counts
# 每位学生的平均成绩和不及格门数
def student_stats(scores):
students_avg = {}
students_fail_count = {}
for i, student_scores in enumerate(scores):
total = sum(student_scores)
avg = total / len(student_scores)
students_avg[i+1] = avg
students_fail_count[i+1] = sum(1 for score in student_scores if score < 60)
return students_avg, students_fail_count
# 按照平均成绩排序
def sort_students_by_average(students_avg):
sorted_students = sorted(students_avg.items(), key=lambda x: x[1], reverse=True)
return sorted_students
# 示例计算
avg_scores, _, _, _ = calculate_subject_scores(scores)
students_avg, students_fail_count = student_stats(scores)
sorted_students = sort_students_by_average(students_avg)
# 输出结果
print("各科成绩:")
for key, value in avg_scores.items():
print(f"{key}: 平均分={value}, 不及格人数={fail_counts[key]}")
print("\n每位学生的平均成绩和不及格门数:")
for student, avg in students_avg.items():
print(f"学生{student}: 平均成绩={avg}, 不及格门数={students_fail_count[student]}")
print("\n按平均成绩排序的学生:")
for rank, (student, _) in enumerate(sorted_students, start=1):
print(f"{rank}. 学生{student}: 平均成绩={_}")
```
阅读全文
相关推荐



















