利用 c 语言编写如下程序:【问题描述】文本文件score.txt中保存有一组学生的成绩(为整数),成绩之间用空格分割,成绩个数未知;要求从该文件读取数据,计算平均成绩、最高分和最低分,并将结果输出到文件result.txt中,其中平均分保留两位小数。 【输入形式】 【输出形式】 【样例输入】假设score.txt中的数据为:90 80 70 60 【样例输出】result.txt中的数据为:75.00 90 60 【样例说明】 【评分标准】
时间: 2023-12-02 20:05:48 浏览: 124
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
好的,我可以为您解答这个问题。以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp1, *fp2;
int score, count = 0, sum = 0, max = -1, min = 101;
double avg;
fp1 = fopen("score.txt", "r");
if (fp1 == NULL) {
printf("无法打开score.txt文件\n");
exit(1);
}
while (fscanf(fp1, "%d", &score) != EOF) {
count++;
sum += score;
if (score > max) {
max = score;
}
if (score < min) {
min = score;
}
}
fclose(fp1);
if (count == 0) {
printf("score.txt文件为空\n");
exit(1);
}
avg = (double)sum / count;
fp2 = fopen("result.txt", "w");
if (fp2 == NULL) {
printf("无法打开result.txt文件\n");
exit(1);
}
fprintf(fp2, "%.2lf %d %d", avg, max, min);
fclose(fp2);
return 0;
}
```
该程序首先打开score.txt文件,并使用while循环逐个读取分数,计算总分、最高分和最低分,以及分数个数。然后,计算平均分,并将所有结果写入result.txt文件中。
注意,程序假设score.txt文件中每个分数之间都用空格分隔,并且分数的范围在0到100之间。如果您的文件格式或数据范围不同,请相应地修改程序。
阅读全文