三角剖分n边形,对每个三角形叉积求有向面积,累加
#include<stdio.h>
#include<string.h>
#define MAXN 105
struct point
{
int x,y;
}p[MAXN];
int cross(point a,point b)
{
return a.x*b.y-a.y*b.x;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n)
{
for(int i=0;i<n;i++)
scanf("%d%d",&p[i].x,&p[i].y);
int area=0;
for(int i=0;i<n;i++)
area+=cross(p[i],p[(i+1)%n]);
printf("%.1lf\n",area*1.0/2.0);
}
return 0;
}