关键:1.如果点在三角形内,则轮流和三角形中的三个点中选两个点,组成的三角形面积,和等于原来的三角形
2.分析集合中,知道三角形三个点的坐标,求面积
出错:在题目中给的某个case中,可以看到如果在三角形的边上,不算是在其内部的
#include<stdio.h>
int mianji(int x1,int y1,int x2,int y2,int x3,int y3)
{
int sum = 0;
sum += x1*y2-x2*y1;
sum += x2*y3-x3*y2;
sum += x3*y1-x1*y3;
return ((sum>=0) ? sum : -sum);
}
int main()
{
int s,s1,s2,s3;
int x1,y1,x2,y2,x3,y3,a,b;
while( scanf("%d%d%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3,&a,&b) != EOF )
{
if( (x1==0)&&(y1==0)&&(x2==0)&&(y2==0)&&(x3==0)&&(y3==0)&&(a==0)&&(b==0) )
{
break;
}
s = mianji(x1,y1,x2,y2,x3,y3);
s1 = mianji(a,b,x2,y2,x3,y3);
s2 = mianji(x1,y1,a,b,x3,y3);
s3 = mianji(x1,y1,x2,y2,a,b);
if(s == (s1+s2+s3)&& s1 && s2 && s3)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
return 0;
}