选择分支结构判断三角形类型


#include 
void main()
{
    float a, b, c;
    printf("请输入三个数\n");
    scanf_s("%f %f %f", &a, &b, &c);
    if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a)
        printf("这是一个直角三角形\n");
    else if (a == b || b == c || a == c)
    {
        if (a == b == c)
            printf("这是一个等边三角形\n");
        else
            printf("这是一个等腰三角形\n");
    }
    else if (a + b <= c || a + c <= b || b + c <= a)
        printf("无法构成三角形\n");
    else
        printf("这是一个一般三角形\n");
}

为什么输入三个相等的数输出为等腰三角形?

a == b == c 改成 a == b && b == c ,要分开写
如果写成 a == b == c 先算 a == b 要么是0或者1,变成 0 == c 或者 1==c 基本为假