C语言文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需 要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生 完整信息(姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件 “stu_info2.txt”并保存于磁盘上。
时间: 2023-12-18 14:03:25 浏览: 22
以下是使用C语言编写的程序,可以实现从文件中读取学生基本信息,输入三门课程成绩并计算平均分,然后将学生完整信息写入另一个文件中。
```c
#include <stdio.h>
int main() {
char name[20], id[20], place[20];
float score1, score2, score3, avg;
// 打开原始数据文件并读取学生基本信息
FILE *fp1 = fopen("stu_info1.txt", "r");
if (fp1 == NULL) {
printf("无法打开文件!\n");
return 1;
}
// 打开输出数据文件并写入标题行
FILE *fp2 = fopen("stu_info2.txt", "w");
fprintf(fp2, "姓名\t学号\t籍贯\t课程1\t课程2\t课程3\t平均分\n");
// 逐行读取学生信息并进行计算
while (fscanf(fp1, "%s%s%s", name, id, place) != EOF) {
printf("请输入 %s(%s)的三门课程成绩:", name, id);
scanf("%f%f%f", &score1, &score2, &score3);
avg = (score1 + score2 + score3) / 3;
// 将学生信息和计算结果写入输出文件
fprintf(fp2, "%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n", name, id, place, score1, score2, score3, avg);
}
fclose(fp1);
fclose(fp2);
printf("数据处理完毕!\n");
return 0;
}
```
程序中使用了 `fscanf()` 函数从原始数据文件中逐行读取学生基本信息,然后使用 `scanf()` 函数输入三门课程成绩并计算平均分,最后使用 `fprintf()` 函数将学生完整信息写入输出数据文件中。程序还在输出数据文件的第一行写入了标题行。