学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。 请编写函数fun,已的功能是:求出 该学生的平均分放在记录的ave成员中。请自己定义正确的形参。 例如,学生的成绩是:85.5,76.69.5,85,91,72,64.5,87.5, 他的平均分应当是:78.875。 注意:部分源程序存在考生文件夹下的文件prog82.c中。 请勿改动主区数main和其他西数中的任何内容,仅在西数fun的花括号中填入你编写的若干语句
时间: 2024-04-06 09:31:22 浏览: 97
根据题目要求,可以定义一个结构体来存储学生记录,包括学号、8门课程成绩和平均分。具体实现如下:
```c
#include <stdio.h>
#define N 8 // 课程数目
struct student{
int id; // 学号
float score[N]; // 8门课程成绩
float ave; // 平均分
};
void fun(struct student *stu){
float sum = 0.0; // 总分
for(int i=0; i<N; i++){
sum += stu->score[i]; // 累加求和
}
stu->ave = sum/N; // 计算平均分
}
int main(){
// 学生的成绩
float score[N] = {85.5, 76, 69.5, 85, 91, 72, 64.5, 87.5};
// 初始化学生记录
struct student stu;
stu.id = 20210001; // 假设学号是20210001
for(int i=0; i<N; i++){
stu.score[i] = score[i];
}
// 调用函数计算平均分
fun(&stu);
// 输出学生记录
printf("学号:%d\n", stu.id);
printf("各门课程成绩:");
for(int i=0; i<N; i++){
printf("%.1f ", stu.score[i]);
}
printf("\n平均分:%.3f\n", stu.ave);
return 0;
}
```
程序输出:
```
学号:20210001
各门课程成绩:85.5 76.0 69.5 85.0 91.0 72.0 64.5 87.5
平均分:78.875
```
阅读全文