以上代码只能在运行后显示Failed to open file,刚刚我提过的问题中【样例输入】假设score.txt中的数据为:90 80 70 60 【样例输出】result.txt中的数据为:75.00 90 60,该代码不符合此条件,请做出修改
时间: 2024-03-24 10:36:50 浏览: 14
非常抱歉,我的回答有误。以下是修改后的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文件,将平均分、最高分和最低分写入文件并关闭文件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)