c语言 写出本题的代码

输入平面上任意三个点的坐标(x1,y1),(x2,y2),(x3,y3),判断其能否构成等腰直角三角形,若能则输出三角形的面积,否则输出“Impossible”

判断等腰直角三角形需要满足三个条件
(1)两边之和大于第三边
(2)两条直角边相等
(3)两边的平方和等于第三边的平方
代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int x1,y1,x2,y2,x3,y3;
    scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
    double b1,b2,b3;
    double l1,l2,l3;
    //计算边
    b1 = (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1);
    b2 = (x3-x1)*(x3-x1)+(y3-y1)*(y3-y1);
    b3 = (x3-x2)*(x3-x2)+(y3-y2)*(y3-y2);

    l1 = sqrt(b1);
    l2 = sqrt(b2);
    l3 = sqrt(b3);

    //判断等腰直角三角形
    if( l1 == l2 && b1+b2 == b3 && l1+l2 > l3)
        printf("%lf",0.5*l1*l2);
    else if(l1 == l3 && b1+b3 == b2 && l1+l3>l2)
        printf("%lf",0.5*l1*l3);
    else if(l2==l3 && b2+b3==b1 && l2+l3 > l1)
        printf("%lf",0.5*l2*l3);
    else
        printf("Impossible");

    return 0;
}

计算三条边长,判断是否构成三角形,然后判断是否两条边相等,再判断另一条边的平方是否等于相等边的平方和

#include <stdio.h>
#include <math.h>
int main()
{
    int x1,y1,x2,y2,x3,y3;
    double d1,d2,d3,d;
    scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
    d1 = sqrt((x1-x2)*(x1-x2)*1.0 + (y1-y2)*(y1-y2));
    d2 = sqrt((x1-x3)*(x1-x3)*1.0 + (y1-y3)*(y1-y3));
    d3 = sqrt((x3-x2)*(x3-x2)*1.0 + (y3-y2)*(y3-y2));
    if(d1+d2>d3 && d1+d3>d2 && d2+d3>d1)
    {
        if(d1==d2  && d1*d1*2 == d3*d3)
              printf("%.2f",0.5*d1*d1);
        else if(d2==d3 && d2*d2*2 == d1*d1)
              printf("%.2f",0.5*d2*d2);
        else if(d1==d3 && d1*d1*2 == d2*d2)
              printf("%.2f",0.5*d3*d3);
        else
            printf("Impossible");
    }
    else
        printf("Impossible");
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^