C语言指针1·设有3个学生,4门功课,编写2个函数分别实现如下功能:(1)求每个学生 的平均分;(2)找出一门以上课程不及格的学生。
时间: 2024-05-10 07:18:15 浏览: 107
以下是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` 函数计算每个学生的平均分和找出不及格的学生。最后,我们使用循环输出每个学生的平均分和不及格的学生编号。
阅读全文