int a,b,c;
cin>>a>>b>>c;
if(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a){
cout<<"Right";
}
if(a==b&&b==c){
cout<<"Equilateral";
}
if (!(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)&&!(a==b&&b==c)&&(a+b<c||a+c<b||b+c<a)){
cout<<"General";
}
if(a+b<c||a+c<b||b+c<a&&(a+b>c&&a+c>b&&b+c>a)){
cout<<"NO";
}
return 0;
}
你只判断了a+b<c,没有判断等于
修改如下
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
if (a * a + b * b == c * c || a * a + c * c == b * b || c * c + b * b == a * a) {
cout << "Right";
}
if (a == b && b == c) {
cout << "Equilateral";
}
if (!(a * a + b * b == c * c || a * a + c * c == b * b || c * c + b * b == a * a) && !(a == b && b == c) && (a + b < c || a + c < b || b + c < a)) {
cout << "General";
}
if (a + b <= c || a + c <= b || b + c <= a) {
cout << "NO";
}
return 0;
}