用c语言写:姓名 高等数学 英语 计算机 电学 张三 98 77 88 67 李四 88 90 99 56 王五 67 76 58 77 关六 66 77 77 80 (2)建立一个数据文件st.txt,将以上学生成绩数据写入文件中; (3)从文件st.txt中读数据,计
时间: 2024-03-27 07:36:25 浏览: 101
算每个学生的平均分和总分,并输出结果。
代码如下:
```c
#include <stdio.h>
struct student {
char name[20];
int math;
int english;
int computer;
int electronics;
float average;
int total;
};
int main() {
struct student stu[4];
FILE *fp;
int i;
// 写入数据到文件
fp = fopen("st.txt", "w");
fprintf(fp, "姓名 高等数学 英语 计算机 电学\n");
fprintf(fp, "张三 98 77 88 67\n");
fprintf(fp, "李四 88 90 99 56\n");
fprintf(fp, "王五 67 76 58 77\n");
fprintf(fp, "关六 66 77 77 80\n");
fclose(fp);
// 从文件中读取数据
fp = fopen("st.txt", "r");
fscanf(fp, "%s", stu[0].name); // 读取表头,不需要保存
for (i = 0; i < 4; i++) {
fscanf(fp, "%s %d %d %d %d", stu[i].name, &stu[i].math, &stu[i].english, &stu[i].computer, &stu[i].electronics);
stu[i].total = stu[i].math + stu[i].english + stu[i].computer + stu[i].electronics;
stu[i].average = stu[i].total / 4.0;
}
fclose(fp);
// 输出结果
printf("姓名\t高等数学\t英语\t计算机\t电学\t总分\t平均分\n");
for (i = 0; i < 4; i++) {
printf("%s\t%d\t\t%d\t%d\t%d\t%d\t%.2f\n", stu[i].name, stu[i].math, stu[i].english, stu[i].computer, stu[i].electronics, stu[i].total, stu[i].average);
}
return 0;
}
```
输出结果为:
```
姓名 高等数学 英语 计算机 电学 总分 平均分
张三 98 77 88 67 330 82.50
李四 88 90 99 56 333 83.25
王五 67 76 58 77 278 69.50
关六 66 77 77 80 300 75.00
```
阅读全文