为什么是部分正确呢,哪里有错

img

img


#include<stdio.h>int main(){    int a[3];    int i,j,t;    for(i=0;i<3;i++)    {        scanf("%d",&a[i]);    }    for(i=0;i<2;i++)    {        for(j=0;j<2-i;j++)        {            if(a[j]>a[j+1])            {                t=a[j];                a[j]=a[j+1];                a[j+1]=t;            }        }    }    if(a[1]+a[0]<=a[2])    {        printf("Not triangle\n");    }    else    {        if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2])        printf("Right triangle\n");        else if(a[0]==a[1]&&a[0]==a[2])        printf("Equilateral triangle\n");        else if(a[0]==a[1]||a[2]==a[1]||a[0]==a[2])        printf("Isosceles triangle\n");        else if(a[0]*a[0]+a[1]*a[1]>a[2]*a[2])        printf("Acute triangle\n");        else if(a[0]*a[0]+a[1]*a[1]<a[2]*a[2])        printf("Obtuse triangle\n");        }    return 0;}
#include <cstdio>
#include <algorithm>
using namespace std;

int a, b, c;

int main() {
    scanf("%d%d%d", &a, &b, &c);
    int d[4] = {0, a, b, c};
    sort(d + 1, d + 4);
    if(d[1] + d[2] <= d[3]) {
        printf("Not triangle\n");
        return 0;
    }
    if(d[1] * d[1] + d[2] * d[2] == d[3] * d[3])    printf("Right triangle\n");
    else if(d[1] * d[1] + d[2] * d[2] > d[3] * d[3])    printf("Acute triangle\n");
    else if(d[1] * d[1] + d[2] * d[2] < d[3] * d[3])    printf("Obtuse triangle\n");
    if(a == b || b == c || a == c)    printf("Isosceles triangle\n");
    if(a == b && b == c)    printf("Equilateral triangle\n");
    return 0;
}

题目要求如果符合多个的话按照顺序输出,你只能输出一种类别