请用C语言完成如下:【问题描述】文本文件score.txt中保存有一组学生的成绩(为整数),成绩之间用空格分割,成绩个数未知;要求从该文件读取数据,计算平均成绩、最高分和最低分,并将结果输出到文件result.txt中,其中平均分保留两位小数。【样例输入】假设score.txt中的数据为:90 80 70 60 【样例输出】result.txt中的数据为:75.00 90 60
时间: 2024-03-16 16:47:41 浏览: 78
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,我会用C语言来实现这个功能。前提是score.txt文件已经存在,并且文件中的成绩都是整数,每个成绩之间以空格分隔。
```
#include <stdio.h>
int main() {
FILE *fp_in, *fp_out;
int score, count = 0, sum = 0, max = 0, min = 100;
// 打开输入文件
fp_in = fopen("score.txt", "r");
if (fp_in == NULL) {
printf("无法打开输入文件!\n");
return 1;
}
// 读取成绩
while (fscanf(fp_in, "%d", &score) != EOF) {
count++;
sum += score;
if (score > max) max = score;
if (score < min) min = score;
}
// 关闭输入文件
fclose(fp_in);
// 打开输出文件
fp_out = fopen("result.txt", "w");
if (fp_out == NULL) {
printf("无法打开输出文件!\n");
return 1;
}
// 输出结果到文件
fprintf(fp_out, "%.2f %d %d", (float)sum / count, max, min);
// 关闭输出文件
fclose(fp_out);
return 0;
}
```
这段代码的思路很简单,就是先打开输入文件,读取成绩并统计平均分、最高分和最低分,然后关闭输入文件,打开输出文件,将结果输出到文件中,最后关闭输出文件。注意输出平均分时要将sum强制转换为float类型,以便计算小数部分。
阅读全文