读书人

从文件中读出数据统计各个浮点数出现

发布时间: 2012-02-22 19:36:56 作者: rapoo

从文件中读出数据,统计各个浮点数出现的次数。统计结果一半正确,一半错误。请高手帮忙看看!

数据是从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));

读书人网 >C++

热点推荐