编写C语言代码:文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需 要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生 完整信息(姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件 “stu_info2.txt”并保存于磁盘上。
时间: 2023-12-22 16:15:24 浏览: 73
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,以下是程序代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 100
int main() {
FILE *fp1, *fp2;
char name[MAX_LEN], id[MAX_LEN], hometown[MAX_LEN];
float grade1, grade2, grade3, avg_grade;
// 打开文件stu_info1.txt
fp1 = fopen("stu_info1.txt", "r");
if (fp1 == NULL) {
printf("Error: cannot open file stu_info1.txt\n");
exit(1);
}
// 打开文件stu_info2.txt
fp2 = fopen("stu_info2.txt", "w");
if (fp2 == NULL) {
printf("Error: cannot open file stu_info2.txt\n");
exit(1);
}
// 逐行读取文件stu_info1.txt中的信息
while (fscanf(fp1, "%s %s %s", name, id, hometown) == 3) {
// 输入三门课程成绩
printf("Enter the grades of three courses for %s (%s):\n", name, id);
scanf("%f %f %f", &grade1, &grade2, &grade3);
// 计算平均成绩
avg_grade = (grade1 + grade2 + grade3) / 3;
// 将学生信息和平均成绩写入文件stu_info2.txt
fprintf(fp2, "%s %s %s %.2f %.2f %.2f %.2f\n", name, id, hometown, grade1, grade2, grade3, avg_grade);
}
// 关闭文件
fclose(fp1);
fclose(fp2);
printf("Finished writing file stu_info2.txt.\n");
return 0;
}
```
程序的思路是先打开文件`stu_info1.txt`,逐行读取每个学生的基本信息,然后让用户输入该学生的三门课程成绩,并计算平均成绩。最后将学生的完整信息(包括姓名、学号、籍贯、课程1、课程2、课程3和平均分)写入文件`stu_info2.txt`中。程序运行结束后,会提示你文件写入完毕。
阅读全文