#include <stdio.h>
#include <math.h>
struct point{
double x;
double y;
};
double getArea(point A, point B, point C) {
double a = sqrt((B.y-C.y)*(B.y-C.y) + (B.x-C.x)*(B.x-C.x));
double c = sqrt((A.x-B.x)*(A.x-B.x) + (A.y-B.y)*(A.y-B.y));
double b = sqrt((A.x-C.x)*(A.x-C.x) + (A.y-C.y)*(A.y-C.y));
double p = (a + b + c) / 2;
return sqrt(p*(p-a)*(p-b)*(p-c));
return 0;
}
int main() {
point a[3] = {{1,2},{2,4},{3,3}};
double tan1 = (a[2].y-a[1].y)/(a[2].x-a[1].x);
double tan2 = (a[3].y-a[2].y)/(a[3].x-a[2].x);
if(tan1 - tan2 < 0.000001) {
printf("不能组成三角形\n");
return -1;
}
point b = {2.5,3};
double s = getArea(a[1],a[2],a[3]);
double s1 = getArea(a[1],a[2],b);
double s2 = getArea(a[1],b,a[3]);
double s3 = getArea(b,a[2],a[3]);
if(s - s1 - s2 - s3 <=0.000001) {
printf("在三角形内部\n");
}
else {
printf("在三角形外部\n");
}
return 0;
}