struct Student { char id[10];//学生学号 char name[NAME_LEN];//姓名 int scores[MAX_COURSE_NUM];//各科分数 int total_score;//总分 float avg_score;//平均分 }; void input_record(struct Student students[], int num);//录入每个学生的学号、姓名和各科考试成绩 请用c语言补充函数
时间: 2023-10-21 17:07:17 浏览: 88
好的,以下是 `input_record` 函数的一个示例实现:
```c
void input_record(struct Student students[], int num) {
for (int i = 0; i < num; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%s", students[i].id);
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", students[i].name);
for (int j = 0; j < MAX_COURSE_NUM; j++) {
printf("请输入第%d个学生的第%d门课程成绩:", i + 1, j + 1);
scanf("%d", &students[i].scores[j]);
students[i].total_score += students[i].scores[j]; // 累加总分
}
students[i].avg_score = students[i].total_score / MAX_COURSE_NUM; // 计算平均分
}
}
```
这个函数中,我们使用了一个 `for` 循环来循环录入每个学生的信息。对于每一个学生,我们依次使用 `scanf` 函数来录入其学号、姓名和各科成绩,并将这些信息存储到对应的结构体成员变量中。同时,我们使用一个内层的 `for` 循环来循环录入每个学生的各门课程成绩,并在循环中累加每个学生的总分。最后,我们计算每个学生的平均分,并将其存储到对应的结构体成员变量中。
需要注意的是,在实际编写中,我们还需要处理一些错误情况,比如输入的学号或成绩不合法等等,这些情况的处理方式可能会因具体需求而不同。
阅读全文