用c语言编写符合以下条件的代码,【问题描述】文本文件score.txt中保存有一组学生的成绩(为整数),成绩之间用空格分割,成绩个数未知;要求从该文件读取数据,计算平均成绩、最高分和最低分,并将结果输出到文件result.txt中,其中平均分保留两位小数。 【输入形式】 【输出形式】 【样例输入】假设score.txt中的数据为:90 80 70 60 【样例输出】result.txt中的数据为:75.00 90 60
时间: 2024-03-24 15:36:48 浏览: 84
以下是符合要求的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp, *fp1;
int n, min = 100, max = 0, i = 0;
float average, k = 0.0;
if ((fp = fopen("score.txt", "r")) == NULL) {
printf("Failed to open file.\n");
exit(1);
}
while (fscanf(fp, "%d", &n) != EOF) {
k += (float)n;
i = i + 1;
if (min > n) min = n;
if (max < n) max = n;
}
average = k / i;
fclose(fp);
if ((fp1 = fopen("result.txt", "w+")) == NULL) {
printf("Failed to open file.\n");
exit(1);
}
fprintf(fp1, "%.2f %d %d", average, max, min);
fclose(fp1);
return 0;
}
```
该程序首先尝试以只读方式打开score.txt文件,如果打开失败,则提示用户并退出程序。然后使用while循环逐个读取文件中的数字,计算总分和成绩个数,并找出最高分和最低分。最后计算平均分,再以写入模式打开result.txt文件,将平均分、最高分和最低分写入文件并关闭文件。
阅读全文