用c语言写程序文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生完整信(姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件“stu_info2.txt”并保存于磁盘上。
时间: 2023-12-22 12:11:08 浏览: 205
好的,这是一个关于文件读写和简单计算的问题,我会尽力回答。
首先,我们需要打开文件“stu_info1.txt”并读取学生的基本信息。可以使用C语言中的文件操作函数来实现:
```c
#include <stdio.h>
int main() {
FILE *fp1, *fp2;
char name[20], id[20], hometown[20];
float grade1, grade2, grade3, avg;
fp1 = fopen("stu_info1.txt", "r");
fp2 = fopen("stu_info2.txt", "w");
if (fp1 == NULL || fp2 == NULL) {
printf("Error: Could not open file.\n");
return 1;
}
while (fscanf(fp1, "%s %s %s", name, id, hometown) != EOF) {
printf("Enter grades for %s (ID: %s, hometown: %s):\n", name, id, hometown);
scanf("%f %f %f", &grade1, &grade2, &grade3);
avg = (grade1 + grade2 + grade3) / 3.0;
fprintf(fp2, "%s %s %s %.2f %.2f %.2f %.2f\n", name, id, hometown, grade1, grade2, grade3, avg);
}
fclose(fp1);
fclose(fp2);
printf("File written successfully.\n");
return 0;
}
```
在上述代码中,我们首先定义了文件指针`fp1`和`fp2`,以及一些用于存储数据的变量。然后使用`fopen()`函数打开文件“stu_info1.txt”和“stu_info2.txt”,并进行错误检查。如果文件打开失败,程序会输出错误信息并返回1。
接着,我们使用`fscanf()`函数从“stu_info1.txt”文件中读取每个学生的基本信息,并在屏幕上提示用户输入该学生的三门课程成绩。输入成绩后,计算平均分,并使用`fprintf()`函数将学生的完整信息写入“stu_info2.txt”文件。
最后,我们使用`fclose()`函数关闭文件指针并输出成功信息。
需要注意的是,此程序假设输入文件中每行都包含三个字符串(姓名、学号、籍贯),并且每个学生的信息在不同行中。如果实际情况不符合这一假设,可能需要对代码进行相应修改。
阅读全文