1. 利用文本编辑软件在磁盘上建立一个有n个学生的学号、姓名及英语、数学和计算机三门课程成绩的数据文件。 2. 用C语言编写程序将第1题建立的数据文件读入且求出每个学生的平均成绩
时间: 2024-01-06 13:06:13 浏览: 72
好的,以下是用C语言编写程序读取学生成绩文件并计算每个学生平均成绩的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LINE_SIZE 100
int main()
{
FILE *fp;
char line[MAX_LINE_SIZE];
int eng, math, comp;
float avg;
// 打开数据文件
if ((fp = fopen("students.txt", "r")) == NULL) {
printf("无法打开文件!\n");
exit(1);
}
// 读取每行数据并计算平均成绩
while (fgets(line, MAX_LINE_SIZE, fp) != NULL) {
int stu_id;
char name[20];
// 使用sscanf函数解析每行数据,将数据存储到对应变量中
sscanf(line, "%d %s %d %d %d", &stu_id, name, &eng, &math, &comp);
// 计算平均成绩
avg = (eng + math + comp) / 3.0;
// 输出每个学生的平均成绩
printf("%s的平均成绩为%.2f\n", name, avg);
}
// 关闭文件
fclose(fp);
return 0;
}
```
代码中,首先使用`fopen()`函数打开数据文件,如果文件打开失败则输出错误信息并退出程序。然后,使用`fgets()`函数逐行读取文件中的数据,将每行数据存储到一个字符数组中。接着,使用`sscanf()`函数解析每行数据,将学生ID、姓名、英语、数学和计算机成绩存储到对应的变量中。最后,计算每个学生的平均成绩,并使用`printf()`函数输出结果。最后,使用`fclose()`函数关闭文件。
阅读全文