实验内容 1,定义结构体,包含学生学号,姓名和3门课成绩。定义一个函数,求若干学生的平均成绩。 主函数负责结构体数组的定义和输入。 2,
时间: 2024-01-03 11:04:28 浏览: 75
运用结构体数组与输入函数进行存放学生的学号姓名等数据
4星 · 用户满意度95%
好的,让我来回答你的问题。
对于第一个问题,我们可以先定义一个结构体,包含学生学号、姓名和3门课成绩,如下所示:
```c
struct Student {
int id; // 学号
char name[20]; // 姓名
float score[3]; // 3门课成绩
};
```
接下来,我们可以定义一个函数,用于求若干学生的平均成绩,函数的参数是一个指向结构体数组的指针,如下所示:
```c
float avg_score(struct Student *stu_arr, int n) {
float sum = 0;
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 3; j++) {
sum += stu_arr[i].score[j];
cnt++;
}
}
return sum / cnt;
}
```
在主函数中,我们可以先定义一个结构体数组,然后读入若干学生的信息,最后调用avg_score函数求平均成绩,如下所示:
```c
int main() {
int n;
scanf("%d", &n); // 输入学生人数
struct Student stu_arr[n];
for (int i = 0; i < n; i++) {
scanf("%d %s %f %f %f", &stu_arr[i].id, stu_arr[i].name,
&stu_arr[i].score[0], &stu_arr[i].score[1], &stu_arr[i].score[2]);
}
printf("平均成绩:%.2f\n", avg_score(stu_arr, n));
return 0;
}
```
至此,我们完成了第一个实验内容的编写。如果有疑问或者需要进一步解释,请随时提出。
阅读全文