有 5 个学生,每个学生有 3 门课的成绩,从键盘输入以下数据(包括学号、姓名、3 门 课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在用户目录下的 stud.dat 中
时间: 2024-01-03 13:04:11 浏览: 76
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
好的,您可以按照以下步骤来完成该操作:
1. 定义一个结构体来保存每个学生的信息和成绩:
```c
struct student {
int id;
char name[20];
float score1;
float score2;
float score3;
float average;
};
```
2. 在主函数中定义一个包含 5 个学生的结构体数组,从键盘输入每个学生的信息和成绩,并计算平均成绩:
```c
int main() {
struct student stud[5];
int i;
// 从键盘输入每个学生的信息和成绩,并计算平均成绩
for (i = 0; i < 5; i++) {
printf("Enter information for student %d:\n", i + 1);
printf("Enter student ID: ");
scanf("%d", &stud[i].id);
printf("Enter student name: ");
scanf("%s", stud[i].name);
printf("Enter score 1: ");
scanf("%f", &stud[i].score1);
printf("Enter score 2: ");
scanf("%f", &stud[i].score2);
printf("Enter score 3: ");
scanf("%f", &stud[i].score3);
// 计算平均成绩
stud[i].average = (stud[i].score1 + stud[i].score2 + stud[i].score3) / 3;
}
// 将学生信息和成绩保存到文件 stud.dat 中
FILE *fp;
fp = fopen("stud.dat", "wb");
if (fp == NULL) {
printf("Error opening file stud.dat");
exit(1);
}
fwrite(stud, sizeof(struct student), 5, fp);
fclose(fp);
printf("Student information and scores saved to stud.dat successfully.");
return 0;
}
```
在这个程序中,我们定义了一个包含 5 个学生的结构体数组 stud,并使用 for 循环从键盘输入每个学生的信息和成绩,并计算平均成绩。接着,我们使用 fwrite 函数将学生信息和成绩保存到文件 stud.dat 中,并使用 fclose 函数关闭文件。
注意,以上程序中的地址是示例地址,您需要根据实际情况修改文件路径。另外,这个程序是一个简单的示例,可能需要根据实际情况进行修改和完善。
阅读全文