利用文本编辑软件在磁盘上建立一个有n个学生的学号、姓名及英语、数 学和计算机三门课程成绩的数据文件。 用C语言编写程序将上面建立的数据文件读入且求出每个学生的平均成绩。
时间: 2024-02-24 18:58:55 浏览: 71
SDI_PSSDI多文本编辑器_
好的,您可以尝试以下代码实现:
```c
#include <stdio.h>
#define MAX_STUDENT_NUM 100
struct student {
char id[10];
char name[20];
float english;
float math;
float computer;
float average;
};
int main() {
FILE *fp;
struct student s[MAX_STUDENT_NUM];
int n = 0;
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
// 读取数据
while (fscanf(fp, "%s %s %f %f %f", s[n].id, s[n].name, &s[n].english, &s[n].math, &s[n].computer) == 5) {
s[n].average = (s[n].english + s[n].math + s[n].computer) / 3.0;
n++;
}
// 输出每个学生的平均成绩
for (int i = 0; i < n; i++) {
printf("%s %s %.2f\n", s[i].id, s[i].name, s[i].average);
}
fclose(fp);
return 0;
}
```
其中,`data.txt`是您保存学生信息的数据文件名,需与程序文件放在同一目录下。在该代码中,我们定义了一个`student`结构体,用于保存每个学生的信息,包括学号、姓名、英语、数学、计算机成绩和平均成绩。我们使用`fopen()`函数打开数据文件,并使用`fscanf()`函数逐行读取每个学生的信息,计算其平均成绩,并保存到结构体中。最后,我们使用`printf()`函数输出每个学生的平均成绩。
请注意,这只是一个简单的实现方式,可能需要根据具体数据文件的格式和内容进行调整。
阅读全文