执行样例正确,提交答案不对。

img


#include<stdio.h>
#include<math.h>

int main(void)
{
    double x1, y1, x2, y2, x3, y3;
    double S;
    int N;
    scanf("%d", &N);
    while(N --)
    {
        scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &x2, &y2, &x3, &y3);
        double a = fabs(sqrt(pow((x1 - x2), 2) +pow((y1 - y2), 2) ));
        double b = fabs(sqrt(pow((x2 - x3), 2) +pow((y2 - y3), 2) ));
        double c = fabs(sqrt(pow((x1 - x3), 2) +pow((y1 - y3), 2) ));
        if(a + b > c && a + c > b && b + c > a)
        {
            S =fabs(0.5 *(x1*y2 - x2*y1) +0.5* (x2*y3- x3*y2) + 0.5*(x1*y3 - x3*y1));
            printf("%.3f\n", S);
        }
        else printf("Can not form a triangle.\n" );

    }
    return 0;
}

你有考虑两个点都在(0,0)吗,那肯定会程序异常