3.设有3个学生,4门功课,编写2个函数分别实现如下功能: (1) 求每个学生 的平均分; (2) 找出一门以上课程不及格的学生。
时间: 2024-03-21 11:43:31 浏览: 64
下面是两个函数的实现:
1. 求每个学生的平均分:
```python
def avg_score(scores):
"""
求每个学生的平均分
:param scores: 一个3x4的二维列表,表示3个学生的4门课程分数
:return: 一个1x3的列表,表示每个学生的平均分
"""
return [sum(scores[i])/4 for i in range(3)]
```
2. 找出一门以上课程不及格的学生:
```python
def fail_students(scores):
"""
找出一门以上课程不及格的学生
:param scores: 一个3x4的二维列表,表示3个学生的4门课程分数
:return: 一个1x3的列表,表示不及格的学生(1为不及格,0为及格)
"""
return [1 if min(scores[i]) < 60 else 0 for i in range(3)]
```
使用示例:
```python
scores = [[80, 70, 90, 85], [65, 75, 55, 80], [90, 80, 70, 60]]
print(avg_score(scores)) # 输出 [81.25, 68.75, 75.0]
print(fail_students(scores)) # 输出 [0, 1, 1]
```
相关问题
C语言指针1·设有3个学生,4门功课,编写2个函数分别实现如下功能:(1)求每个学生 的平均分;(2)找出一门以上课程不及格的学生。
以下是C语言代码实现:
```c
#include <stdio.h>
#define NUM_STUDENT 3
#define NUM_COURSE 4
void average_score(float score[][NUM_COURSE], float avg[]) {
for (int i = 0; i < NUM_STUDENT; i++) {
float sum = 0.0;
for (int j = 0; j < NUM_COURSE; j++) {
sum += score[i][j];
}
avg[i] = sum / NUM_COURSE;
}
}
void fail_student(float score[][NUM_COURSE], int fail[]) {
for (int i = 0; i < NUM_STUDENT; i++) {
int count = 0;
for (int j = 0; j < NUM_COURSE; j++) {
if (score[i][j] < 60.0) {
count++;
}
}
if (count >= 1) {
fail[i] = 1;
} else {
fail[i] = 0;
}
}
}
int main() {
float score[NUM_STUDENT][NUM_COURSE] = {{80, 90, 70, 85}, {95, 70, 75, 60}, {50, 65, 80, 70}};
float avg[NUM_STUDENT];
int fail[NUM_STUDENT];
average_score(score, avg);
fail_student(score, fail);
printf("每个学生的平均分为:\n");
for (int i = 0; i < NUM_STUDENT; i++) {
printf("学生%d的平均分为%.2f\n", i+1, avg[i]);
}
printf("以下是不及格的学生:\n");
for (int i = 0; i < NUM_STUDENT; i++) {
if (fail[i] == 1) {
printf("学生%d\n", i+1);
}
}
return 0;
}
```
代码中,我们首先定义了3个学生,4门功课的数组 `score`,然后定义了两个函数 `average_score` 和 `fail_student`。
`average_score` 函数用来计算每个学生的平均分,它接受一个二维数组 `score` 和一个一维数组 `avg` 作为参数。在函数中,我们使用两个嵌套的循环分别遍历每个学生和每门课程,累加每个学生的分数并计算平均分,最后将平均分存储到 `avg` 数组中。
`fail_student` 函数用来找出一门以上课程不及格的学生,它接受一个二维数组 `score` 和一个一维数组 `fail` 作为参数。在函数中,我们使用两个嵌套的循环分别遍历每个学生和每门课程,如果某门课程的分数不及格(小于60分),则计数器 `count` 加1。如果计数器 `count` 大于等于1,说明该学生不及格,将 `fail` 数组中对应位置的值设为1,否则设为0。
在 `main` 函数中,我们定义了 `avg` 和 `fail` 两个数组,然后调用了 `average_score` 和 `fail_student` 函数计算每个学生的平均分和找出不及格的学生。最后,我们使用循环输出每个学生的平均分和不及格的学生编号。
设有3个学生,4门功课,编写2个函数分别实现如下功能:+(1)求每个学生的平均分;+(2)+找出一门以上课程不及格的学生
以下是两个函数实现你所需的功能:
1. 求每个学生的平均分
```python
def calculate_avg(scores):
avg_scores = []
for student_scores in scores:
avg_score = sum(student_scores) / len(student_scores)
avg_scores.append(avg_score)
return avg_scores
# 示例数据
scores = [[80, 90, 85, 95], [70, 60, 75, 80], [90, 85, 80, 95]]
student_avgs = calculate_avg(scores)
print(student_avgs) # 输出:[87.5, 71.25, 87.5]
```
2. 找出一门以上课程不及格的学生
```python
def find_fail_students(scores):
fail_students = []
for i, student_scores in enumerate(scores):
if len([score for score in student_scores if score < 60]) >= 1:
fail_students.append(i + 1)
return fail_students
# 示例数据
scores = [[80, 90, 85, 95], [70, 60, 75, 80], [90, 85, 80, 95]]
fail_students = find_fail_students(scores)
print(fail_students) # 输出:[2]
```
阅读全文