用C语言输出,文件“stu info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生完整信息(姓名、学号、籍贯、课程1、课程2、课程3、平均分)写入文件“stu_info2.txt”并保存于磁盘上。
时间: 2023-06-16 19:03:41 浏览: 160
以下是一个简单的 C 语言程序,可以实现上述需求:
```c
#include <stdio.h>
typedef struct {
char name[20];
char number[20];
char hometown[20];
float score1;
float score2;
float score3;
float average;
} student;
int main() {
FILE *fp1, *fp2;
student stu;
float sum;
// 打开文件
fp1 = fopen("stu info1.txt", "r");
fp2 = fopen("stu_info2.txt", "w");
// 读取每个学生的基本信息并输入成绩
while (fscanf(fp1, "%s %s %s", stu.name, stu.number, stu.hometown) == 3) {
printf("请输入 %s 的三门课成绩:", stu.name);
scanf("%f %f %f", &stu.score1, &stu.score2, &stu.score3);
// 计算平均成绩
sum = stu.score1 + stu.score2 + stu.score3;
stu.average = sum / 3;
// 将学生信息写入文件
fprintf(fp2, "%s %s %s %.1f %.1f %.1f %.1f\n", stu.name, stu.number, stu.hometown, stu.score1, stu.score2, stu.score3, stu.average);
}
// 关闭文件
fclose(fp1);
fclose(fp2);
return 0;
}
```
在上述程序中,我们首先定义了一个 `student` 结构体,用于存储每个学生的信息。然后打开输入和输出的文件,并通过 `fscanf` 函数读取每个学生的基本信息。接着,我们使用 `scanf` 函数输入该学生的三门课成绩,并计算平均成绩。最后,使用 `fprintf` 函数将该学生完整信息写入输出文件。最后,关闭文件。
阅读全文