用C语言假设有5个学生3门课程的分数存放在名为student.txt的文件中,要求计算每门课程的平均分,并且将计算的结果存入course_aver.txt文件中
时间: 2024-05-03 13:21:29 浏览: 42
假设student.txt文件中的数据格式如下:
```
90 80 70
70 75 80
85 90 95
60 70 80
75 80 85
```
以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
FILE *fp_in, *fp_out;
int scores[5][3];
double course_averages[3] = {0};
int i, j;
// 打开student.txt文件
fp_in = fopen("student.txt", "r");
if (fp_in == NULL) {
printf("Error: cannot open input file.\n");
return 1;
}
// 读取分数数据
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
fscanf(fp_in, "%d", &scores[i][j]);
}
}
// 关闭student.txt文件
fclose(fp_in);
// 计算每门课程的平均分
for (j = 0; j < 3; j++) {
for (i = 0; i < 5; i++) {
course_averages[j] += scores[i][j];
}
course_averages[j] /= 5;
}
// 打开course_aver.txt文件
fp_out = fopen("course_aver.txt", "w");
if (fp_out == NULL) {
printf("Error: cannot open output file.\n");
return 1;
}
// 将计算结果写入course_aver.txt文件
for (j = 0; j < 3; j++) {
fprintf(fp_out, "Course %d average: %.2lf\n", j + 1, course_averages[j]);
}
// 关闭course_aver.txt文件
fclose(fp_out);
printf("Done.\n");
return 0;
}
```
运行以上代码后,会生成一个名为course_aver.txt的文件,其中包含每门课程的平均分,例如:
```
Course 1 average: 76.00
Course 2 average: 79.00
Course 3 average: 82.00
```
阅读全文