判断是否为直角三角形,代码出错只输出yes

img

img

输入3,4,5输出是yes
但是输入了1,2,3还是输出yes,这是为什么
请各位程序员看一下,蟹蟹

#include<stdio.h>
int main()
{
    int a[4];
    scanf("%d %d %d",&a[0], &a[1], &a[2]);
    for(int i = 0; i < 3; ++i)//排序
        for(int j = 2; j > i; j--)
            if(a[j] < a[i])
            {
                long long temp = a[j];
                a[j] = a[i];
                a[i] = temp;
            }
    if(a[0] == 0)//最短边为0,无法构成三角形 
    {
        printf("no");
        return 0;
    }
    if(a[0] * a[0] + a[1] * a[1] == a[2] * a[2]) printf("yes");//勾股定理
    else printf("no");
    return 0;
}

img


?

定义字符数组时有问题