c语言,为什么这样算出来答案不对呢

img


#include <stdio.h>
#include <math.h>
int main()
{
double x1,x2,x3,y1,y2,y3;
scanf("%lf %lf %lf %lf %lf %lf",&x1,&x2,&x3,&y1,&y2,&y3);
if(x1==x2==x3||y1==y2==y3||((x1==x2)&&(y1==y2))||((x2==x3)&&(y2==y3))||((x1==x3)&&(y1==y3)))
printf("Impossible");
else{
double l,a,b;
l=sqrt(pow(x1-x2,2)+pow(y1-y2,2))+sqrt(pow(x1-x3,2)+pow(y1-y3,2))+sqrt(pow(x3-x2,2)+pow(y3-y2,2));
a=l/2;
b=a*(a-sqrt(pow(x1-x2,2)+pow(y1-y2,2)))(a-sqrt(pow(x1-x3,2)+pow(y1-y3,2)))(a-sqrt(pow(x3-x2,2)+pow(y3-y2,2)));
printf("L =%.2f,A =%.2f",l,b);

}

}

x1==x2==x这样写是不对的,改为(x1==x2) && (x2==x)