从文件中读出数据,统计各个浮点数出现的次数。统计结果一半正确,一半错误。请高手帮忙看看!
数据是从24.83开始到25.23结束的20个浮点数。统计结果从24.83到25.02是正确的,但是后面的结果就错了。
void main()
{
fstream fMyfile;
float avertemp[500]; //保存从文件中读取的数据
int n;
float d1,max,min;
int result[80]; //保存结果
fMyfile.open( "C:\\result2.txt ",ios::in); //打开文件
if(!fMyfile){cout < < "error ";
exit(-1);}
memset(result,0,80);
min=100;
max=0;
for(int i=0;i <20;i++) //读取数据,得到最大数和最小数
{
fMyfile> > avertemp[i];
if(avertemp[i]> max)
{max=avertemp[i];}
if(avertemp[i] <min)
{min=avertemp[i];}
}
fMyfile.close ();
for(int k=0;k <20;k++)
{
n=0; //计数器
for(float d=min; d <=max+0.01;d=d+0.01)
{
if((avertemp[k]-d)> =-0.00001 && (avertemp[k]-d) <=0.00001) //统计浮点数
{ result[n]=result[n] +1;}
n++;
}
}
//显示结果
d1=int((max+0.01-min)*100);
for(int j=0;j <=d1;j++)
{
cout < <min < < "= " < <result[j] < <endl;
min=min+0.01;
}
}
[解决办法]
你是不是少读了一半的数据?
[解决办法]
memset(result,0,80*sizeof(int));