设有3个学生,4门功课,用C语言指针知识编写2个函数分别实现如下功能: (1) 求每个学生 的平均分; (2) 找出一门以上课程不及格的学生。
时间: 2024-03-21 08:43:32 浏览: 92
下面是两个函数的实现:
1. 求每个学生的平均分:
```c
void avg_score(int (*scores)[4], float *avg) {
/*
求每个学生的平均分
scores: 一个3x4的二维数组,表示3个学生的4门课程分数
avg: 一个1x3的数组,表示每个学生的平均分
*/
for (int i = 0; i < 3; i++) {
float sum = 0;
for (int j = 0; j < 4; j++) {
sum += *(scores[i] + j);
}
*(avg + i) = sum / 4;
}
}
```
2. 找出一门以上课程不及格的学生:
```c
void fail_students(int (*scores)[4], int *fail) {
/*
找出一门以上课程不及格的学生
scores: 一个3x4的二维数组,表示3个学生的4门课程分数
fail: 一个1x3的数组,表示不及格的学生(1为不及格,0为及格)
*/
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
if (*(scores[i] + j) < 60) {
*(fail + i) = 1;
break;
}
}
}
}
```
使用示例:
```c
int scores[3][4] = {{80, 70, 90, 85}, {65, 75, 55, 80}, {90, 80, 70, 60}};
float avg[3];
int fail[3] = {0};
avg_score(scores, avg);
fail_students(scores, fail);
for (int i = 0; i < 3; i++) {
printf("学生%d的平均分为%.2f,是否有不及格课程:%s\n", i+1, *(avg+i), *(fail+i)?"是":"否");
}
```
阅读全文