3.文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需 要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生 完整信息(姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件 “stu_info2.txt”并保存于磁盘上。用C语言编程
时间: 2023-11-27 15:52:01 浏览: 49
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
下面是一个简单的C语言程序,可以实现该功能:
```c
#include <stdio.h>
#define MAX_NAME_LEN 20
#define MAX_ID_LEN 10
#define MAX_ADDR_LEN 50
struct Student {
char name[MAX_NAME_LEN];
char id[MAX_ID_LEN];
char addr[MAX_ADDR_LEN];
double score1;
double score2;
double score3;
double avg_score;
};
int main() {
FILE *fp1, *fp2;
fp1 = fopen("stu_info1.txt", "r");
fp2 = fopen("stu_info2.txt", "w");
if (fp1 == NULL || fp2 == NULL) {
printf("Failed to open file.\n");
return 1;
}
struct Student stu;
while (fscanf(fp1, "%s %s %s", stu.name, stu.id, stu.addr) != EOF) {
printf("Enter scores for student %s:\n", stu.name);
scanf("%lf %lf %lf", &stu.score1, &stu.score2, &stu.score3);
stu.avg_score = (stu.score1 + stu.score2 + stu.score3) / 3;
fprintf(fp2, "%s %s %s %.2lf %.2lf %.2lf %.2lf\n", stu.name, stu.id, stu.addr, stu.score1, stu.score2, stu.score3, stu.avg_score);
}
fclose(fp1);
fclose(fp2);
return 0;
}
```
这个程序首先打开输入文件和输出文件,然后读取每个学生的信息,为每个学生输入三门课程成绩,并计算平均成绩,最后将学生的完整信息写入输出文件。程序使用了一个 `Student` 结构体来保存每个学生的信息,其中包含了姓名、学号、籍贯、三门课程成绩和平均成绩。程序使用了标准库函数 `fscanf` 和 `fprintf` 来读取和写入文件。
阅读全文