现有一个班4 个学生,5 门课程。实现下列功能: ⑴求第1门课程的平均分; ⑵找出有两门以上课程不及格的学生,并输出他们的学号和全部课程成绩及平均成绩; ⑶找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
时间: 2024-03-20 22:42:29 浏览: 53
好的,这是一道比较基础的编程题,我会尽力帮助你解决这个问题。首先,我们可以定义一个二维数组来存储每个学生的成绩,每一行代表一个学生,每一列代表一门课程。代码如下:
```
scores = [[80, 90, 85, 70, 92], [75, 60, 68, 80, 78], [92, 88, 90, 85, 87], [70, 72, 68, 75, 80]]
```
其中,scores[0]代表第一个学生的成绩,scores[0][0]代表第一个学生的第一门课程成绩。
接下来,我们可以按照题目要求依次实现功能:
⑴求第1门课程的平均分
```
def avg_first_course(scores):
total = 0
for i in range(len(scores)):
total += scores[i][0]
return total / len(scores)
```
调用这个函数,可以得到第一门课程的平均分:
```
print(avg_first_course(scores))
```
⑵找出有两门以上课程不及格的学生,并输出他们的学号和全部课程成绩及平均成绩
```
def find_failed_students(scores):
failed_students = []
for i in range(len(scores)):
failed_count = 0
total = 0
for j in range(len(scores[i])):
if scores[i][j] < 60:
failed_count += 1
total += scores[i][j]
if failed_count >= 2:
avg_score = total / len(scores[i])
student_info = {
'id': i + 1,
'scores': scores[i],
'avg_score': avg_score
}
failed_students.append(student_info)
return failed_students
```
调用这个函数,可以得到有两门以上课程不及格的学生的信息:
```
failed_students = find_failed_students(scores)
for student in failed_students:
print('id:', student['id'])
print('scores:', student['scores'])
print('avg_score:', student['avg_score'])
```
⑶找出平均成绩在90分以上或全部课程成绩在85分以上的学生
```
def find_good_students(scores):
good_students = []
for i in range(len(scores)):
total = 0
all_above_85 = True
for j in range(len(scores[i])):
if scores[i][j] < 85:
all_above_85 = False
total += scores[i][j]
avg_score = total / len(scores[i])
if avg_score >= 90 or all_above_85:
student_info = {
'id': i + 1,
'scores': scores[i],
'avg_score': avg_score
}
good_students.append(student_info)
return good_students
```
调用这个函数,可以得到平均成绩在90分以上或全部课程成绩在85分以上的学生的信息:
```
good_students = find_good_students(scores)
for student in good_students:
print('id:', student['id'])
print('scores:', student['scores'])
print('avg_score:', student['avg_score'])
```
阅读全文