c语言 有5个学生,每个学生有3门功课的成绩,从键盘输入学生的数据(包括学号、姓名、3门课程的成绩),计算出平均成绩。将原有数据和计算出的平均分数存放到磁盘文件“stud.dat”中。
时间: 2023-12-15 19:08:14 浏览: 68
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
以下是一个基本的实现:
```c
#include <stdio.h>
struct student {
int id;
char name[20];
float grade[3];
float average;
};
int main() {
struct student s[5];
int i, j;
FILE *fp;
// 从键盘输入学生数据
for (i = 0; i < 5; i++) {
printf("请输入第%d个学生的学号、姓名和三门课成绩:\n", i + 1);
scanf("%d %s %f %f %f", &s[i].id, s[i].name, &s[i].grade[0], &s[i].grade[1], &s[i].grade[2]);
s[i].average = (s[i].grade[0] + s[i].grade[1] + s[i].grade[2]) / 3.0;
}
// 将数据写入文件
fp = fopen("stud.dat", "wb");
fwrite(s, sizeof(struct student), 5, fp);
fclose(fp);
// 从文件读取数据并输出平均成绩
fp = fopen("stud.dat", "rb");
for (i = 0; i < 5; i++) {
fread(&s[i], sizeof(struct student), 1, fp);
printf("学号:%d 姓名:%s 三门课成绩:%.1f %.1f %.1f 平均成绩:%.1f\n", s[i].id, s[i].name, s[i].grade[0], s[i].grade[1], s[i].grade[2], s[i].average);
}
fclose(fp);
return 0;
}
```
程序中定义了一个结构体 `student`,包含学号、姓名、三门课程的成绩和平均成绩。首先从键盘输入学生的数据,并计算出平均成绩。然后将原有数据和计算出的平均分数存放到磁盘文件“stud.dat”中,使用二进制写入方式。最后从文件读取数据并输出平均成绩。注意,需要使用二进制读取方式。
阅读全文