算是自己第一道正式写的算法几何吧,先从简单的开始吧,加油!!!
描述-
输入
-
每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示三个点的横纵坐标。(坐标值都在0到10000之间)
输入0 0 0 0 0 0表示输入结束
测试数据不超过10000组
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<math.h>
#include<algorithm>
using namespace std;
struct point
{
int x, y;
};
double xmult(point p1, point p2, point p0)
{
return (p1.x-p0.x)*(p2.y-p0.y) - (p2.x-p0.x)*(p1.y-p0.y);
}
double area(point p1, point p2, point p3 )
{
return fabs(xmult(p1,p2,p3))/2;
}
int main()
{
point p1, p2, p3;
while(scanf("%d%d%d%d%d%d",&p1.x, &p1.y, &p2.x, &p2.y, &p3.x, &p3.y))
{
if(p1.x==0&&p1.y==0&&p2.x==0&&p2.y==0&&p3.x==0&&p3.y==0)
break;
double m = area(p1,p2,p3);
printf("%.1lf\n",m);
}
system("pause");
return 0;
}