C++的问题
# include<iostream.h>
# include<math.h>
const n=30;
void main()
{
int a,b;
double c;
for(a=1;a<=n;a++)
for(b=a+1;b<=n;b++){
c=sqrt(a*a+b*b);
if(fabs(int(c+0.5)-c)<le-5)
cout<<'('<<a<<','<<b<<','<<c<<')'<<endl;
}
}
其中,if(fabs(int(c+0.5)-c)<le-5)怎么解释.
参考答案:这是标准的办法,用来判断浮点数c的值是否等于一个整数。例如:
当c=5.0判断条件成立
当c=5.0000001或c=4.9999999判断条件仍然成立
而当c=5.3或c=4.7时判断条件就不成立了
以上是以5为例,其实当c处于任何整数的附近判断条件都有效
1e-5就是10的-5次方,也就是0.00001