判断三种三角形 如果不成立则NO 输入2 1 3时没用

 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;
}