溢出啊,怎么办?
完整源码如下:
#include "stdlib.h"
#include "iostream.h"
#include "math.h"
int Nrand,Arand;
float GaussAdd,GaussFac;
void InitGauss(int seed)
{
Nrand=1;
Arand=(int)pow(2,15)-1;
GaussAdd=(float)sqrt(3*Nrand);
GaussFac=(float)2*GaussAdd/Nrand/Arand;//溢出
srand(seed);
}
double Gauss()
{
short sum,i;
sum=0;
for(i=1;i<=4;i++)
sum+=rand();
return (GaussFac*sum-GaussAdd);
}
void main()
{
int seed;
cin>>seed;
InitGauss(seed);
cout<<Gauss();
}
问题点数:20、回复次数:2Top
1 楼i_jianyong(北极之光@ textolap.com)回复于 2003-06-01 07:01:59 得分 20
我试了一下,没问题啊。
难道你的编译器做除法是从右向左?加括号试试
GaussFac=( ( (float)2 * GaussAdd) / Nrand ) ) / Arand;Top
2 楼robertcarlos(还我信誉分)回复于 2003-06-01 07:30:17 得分 0
请问啊,什么叫溢出啊?
什么才能算是溢出啊?Top




