```c

#include<stdio.h>
#include<math.h>
#include<time.h>
#define INF 1000000
int main()
{
FILE *fin, *fout;
fin = fopen("data.in", "rb");
fout = fopen("data.out", "wb");
int x, max, min, sum = 0,n=0;
max = -INF; min = INF;
while (fscanf(fin,"%d",&x)==1)
{
sum += x;
if (x < min)min = x;
if (x > max)max = x;
n++;
}
fprintf(fout,"%d %d %.3f\n",min,max,(double)sum/n);
fclose(fin);
fclose(fout);
return 0;
}
可能是data.in文件打开失败,需要先判断一下文件是否正确打开。
需要有data.in 这个文件,并且这个文件放在你的工程目录下,这时候你的代码是可以运行的,如果没有这个文件,就会出你报的错误。
代码修改如下:
#include<stdio.h>
#include<math.h>
#include<time.h>
#define INF 1000000
int main()
{
FILE *fin, *fout;
fin = fopen("data.in", "rb"); //需要有这个文件,并且这个文件放在你的工程目录下
if(fin==0)
{
printf("data.in open error\n");
return 0;
}
fout = fopen("data.out", "wb");
int x, max, min, sum = 0,n=0;
max = -INF; min = INF;
while (fscanf(fin,"%d",&x)==1)
{
sum += x;
if (x < min)min = x;
if (x > max)max = x;
n++;
}
fprintf(fout,"%d %d %.3f\n",min,max,(double)sum/n);
fclose(fin);
fclose(fout);
return 0;
}
读取data.in里面的数据,读取出来获取最大值,最小值,及平均数保存到data.out文件