c语言有5个学生,每个学生有3门功课的成绩,从键盘输入学生的数据(包括学号、姓名、3门课程的成绩),计算出平均成绩。将原有数据和计算出的平均分数存放到磁盘文件“stud.dat”中。
时间: 2023-12-15 12:08:14 浏览: 120
下面是一个简单的 C 语言程序,实现了以上要求:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 5
#define MAX_NAME_LEN 20
struct student {
int id;
char name[MAX_NAME_LEN];
int scores[3];
float avg;
};
int main() {
struct student students[MAX_STUDENTS];
// 从键盘输入学生数据
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第 %d 个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩1:");
scanf("%d", &students[i].scores[0]);
printf("成绩2:");
scanf("%d", &students[i].scores[1]);
printf("成绩3:");
scanf("%d", &students[i].scores[2]);
// 计算平均成绩
students[i].avg = (students[i].scores[0] + students[i].scores[1] + students[i].scores[2]) / 3.0;
}
// 将数据写入磁盘文件
FILE *fp;
if ((fp = fopen("stud.dat", "wb")) == NULL) {
printf("打开文件失败\n");
exit(1);
}
fwrite(students, sizeof(struct student), MAX_STUDENTS, fp);
fclose(fp);
printf("数据已成功写入文件 stud.dat\n");
return 0;
}
```
这个程序定义了一个 `student` 结构体,包含学生的学号、姓名、3门成绩和平均成绩。首先从键盘输入每个学生的数据,并且计算出平均成绩。然后将所有学生的数据写入磁盘文件 `stud.dat` 中,使用二进制模式写入。最后输出成功写入文件的提示信息。
阅读全文