c语言指针实现3.设有3个学生,4门功课,用两个自定义函数实现如下功能:(1)求每个学生 的平均分;(2)找出一门以上课程不及格的学生。
时间: 2024-02-09 22:08:18 浏览: 76
可以使用以下代码实现:
```c
#include <stdio.h>
// 定义学生结构体
struct student {
char name[20]; // 学生姓名
int scores[4]; // 学生各科成绩
float avg_score; // 学生平均分
};
// 计算学生平均分
void calc_avg_score(struct student *stu) {
int sum = 0;
for (int i = 0; i < 4; i++) {
sum += stu->scores[i];
}
stu->avg_score = (float)sum / 4;
}
// 查找不及格学生
void find_failed_student(struct student *stu_arr, int n) {
for (int i = 0; i < n; i++) {
int failed_count = 0;
for (int j = 0; j < 4; j++) {
if (stu_arr[i].scores[j] < 60) {
failed_count++;
}
}
if (failed_count > 0) {
printf("%s不及格了%d门课程\n", stu_arr[i].name, failed_count);
}
}
}
int main() {
// 定义学生数组
struct student stu_arr[3] = {
{"张三", {80, 75, 90, 85}},
{"李四", {70, 65, 55, 80}},
{"王五", {90, 85, 95, 90}}
};
// 计算每个学生的平均分
for (int i = 0; i < 3; i++) {
calc_avg_score(&stu_arr[i]);
printf("%s的平均分是%.2f\n", stu_arr[i].name, stu_arr[i].avg_score);
}
// 查找不及格学生
find_failed_student(stu_arr, 3);
return 0;
}
```
在这个代码中,我们定义了一个 `student` 结构体,里面包含学生姓名、各科成绩和平均分。然后我们定义了两个函数,分别用于计算学生平均分和查找不及格学生。在 `main` 函数中,我们定义了一个学生数组,并且分别调用了这两个函数。最后输出结果。
阅读全文