C语言文本文件score.txt中保存有一组学生的成绩(为整数),成绩之间用空格分割,成绩个数未知;要求从该文件读取数据,计算平均成绩、最高分和最低分,并将结果输出到文件result.txt中,其中平均分保留两位小数。
时间: 2024-03-24 08:36:45 浏览: 89
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,下面是实现这个功能的 C 代码:
```c
#include <stdio.h>
int main() {
FILE *fp_in, *fp_out;
int score, sum = 0, max = 0, min = 100, count = 0;
double avg;
fp_in = fopen("score.txt", "r");
if (fp_in == NULL) {
printf("无法打开文件\n");
return 1;
}
while (fscanf(fp_in, "%d", &score) == 1) {
sum += score;
count++;
if (score > max) {
max = score;
}
if (score < min) {
min = score;
}
}
fclose(fp_in);
if (count == 0) {
printf("文件中没有数据\n");
return 1;
}
avg = (double)sum / count;
fp_out = fopen("result.txt", "w");
if (fp_out == NULL) {
printf("无法打开文件\n");
return 1;
}
fprintf(fp_out, "平均成绩:%.2f\n", avg);
fprintf(fp_out, "最高分:%d\n", max);
fprintf(fp_out, "最低分:%d\n", min);
fclose(fp_out);
return 0;
}
```
这个代码与前面的代码类似,不同的是它输出结果到了一个名为 "result.txt" 的文件中。我们首先打开输入文件 "score.txt",然后使用 fscanf 函数从文件中读取每个成绩,并进行累加、最高分和最低分的计算。和前面一样,我们需要检查文件中是否有数据。如果有数据,我们计算平均成绩,并打开输出文件 "result.txt",然后使用 fprintf 函数将结果输出到文件中。最后,我们关闭输入文件和输出文件,程序结束。
阅读全文