c语言判读三角形所属的类型

读入3个double型变量a,b,c的值,用if语句判断它们能否构成三角形,如果能构成三角形又是构成的何种三角形(等边三角形、等腰三角形、直角三角形、等腰直角三角形、一般三角形)?输出各种情况下判断的结果

#include<stdio.h>
int main()
{ double a, b, c, t;
printf("请输入三边长,即三个正数:");
scanf("%f%f%f", &a, &b, &c);
if (a > b)
{ t = a;
a = b;
b = t;}
if (a > c)
{ t = a;
a = c;
c = t;}
if (b > c)
{ t = b;
b = c;
c = t;}
if(a+b>c)
{if(a==b&&b==c)
printf("此三边可以构成三角形,且该三角形为等边三角形");
else if(a==b||b==c)
printf("此三边可以构成三角形,且该三角形为等腰三角形");
else if(aa+bb==c*c)
printf("此三边可以构成三角形,且该三角形为直角三角形");
else
printf("此三边可以构成三角形,且该三角形为一般三角形");}
else
printf("此三边不能构成三角形");
return 0;
}

#include<stdio.h>
int main() {
    double a,b,c;
    scanf("%lf %lf %lf",&a,&b,&c);
    if(a+b>c&&a+c>b&&c+b>a) {
        printf("能组成三角形\n");
        if(a==b&&b==c) {
            printf("等边三角形\n");
        } else if(a==b&&b!=c || a==c&&a!=b || b==c&&a!=b) {
            if(a*a+b*b==c*c ||a*a+c*c==b*b || b*b+c*==a*a) {
                printf("等腰直角三角形\n");
            } else {
                printf("等腰三角形\n");
            }
        } else if(a*a+b*b==c*c ||a*a+c*c==b*b || b*b+c*==a*a) {
            printf("直角三角形\n");
        } else {
            printf("一般三角形\n");
        }
    } else {
        printf("不能组成三角形\n");
    }
    return 0;
}

觉得有用的话采纳一下哈