C语言 有5个学生,每个学生的数据包括学号,姓名,三门课的成绩,平均分。要求从键盘依次输入5个学生的学号,姓名,三门课的成绩,自动计算三门课平均分数,并将5个学生的数据输出。要求编写三个函数,分别实现录入学生信息,计算平均分,输出学生数据,主函数调用这三个函数。
时间: 2024-09-11 17:05:48 浏览: 57
有5个学生,么个学生有三门课成绩,从键盘键入以上数据,存放在文件中
5星 · 资源好评率100%
在C语言中,我们可以设计如下的结构体来存储学生的信息,然后创建三个函数来完成你的需求:
首先,创建一个名为`Student`的结构体,用于存储学生数据:
```c
typedef struct {
int id; // 学号
char name[50]; // 姓名
float score[3]; // 三门课成绩
float avg_score; // 平均分
} Student;
```
接下来,编写三个函数:
1. **录入学生信息函数(input_student_info)**:
这个函数会接收用户的输入,并填充学生结构体的数据。
```c
void input_student_info(Student *student) {
printf("请输入学号:");
scanf("%d", &student->id);
printf("请输入姓名:");
fgets(student->name, sizeof(student->name), stdin);
student->name[strcspn(student->name, "\n")] = '\0'; // 去除换行符
printf("请输入三门课程成绩,以空格分隔:");
scanf("%f %f %f", &student->score[0], &student->score[1], &student->score[2]);
}
```
2. **计算平均分函数(calculate_avg_score)**:
这个函数负责计算学生的平均分。
```c
void calculate_avg_score(Student *student) {
student->avg_score = (student->score[0] + student->score[1] + student->score[2]) / 3.0;
}
```
3. **输出学生数据函数(output_student_data)**:
这个函数打印学生的所有信息。
```c
void output_student_data(const Student *student) {
printf("学号:%d\n", student->id);
printf("姓名:%s\n", student->name);
printf("课程成绩:%.2f %.2f %.2f\n", student->score[0], student->score[1], student->score[2]);
printf("平均分:%.2f\n", student->avg_score);
}
```
最后,在主函数(main)中调用这3个函数:
```c
int main() {
Student students[5]; // 创建一个包含5个学生的数组
for (int i = 0; i < 5; i++) {
input_student_info(&students[i]); // 录入信息
calculate_avg_score(&students[i]); // 计算平均分
output_student_data(&students[i]); // 输出信息
}
return 0;
}
```
阅读全文