精度问题,只要把float修改为double即可。
参考代码如下:
#include
#include
using namespace std;
int main()
{
double a,b,c;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
cout<<"c=";
cin>>c;
if ((a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*b))
cout<<"Yes,it's a right triangle."<
cout<<"Sorry,it's not a right triangle."<
return 0;
}
浮点数判断相等不能用==,把if里的三个x==y格式的改成abs(x-y)<0.000001这种格式