#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,x[100],y[100],i,a1,a2,b1,b2;
double s;
while (scanf("%d", &n)!=EOF && n!=0)
{
for (i=1;i<=n;i++)
scanf("%d %d", &x[i], &y[i]);
s=0;
for (i=1;i<=n-2;i++)
{
a1=x[i+1]-x[1]; a2=y[i+1]-y[1];
b1=x[i+2]-x[1]; b2=y[i+2]-y[1];
s=s+0.5*(a1*b2-a2*b1);
}
printf("%.1lf\n",s);
}
return 0;
}
把多边形分成一个个三角形,利用叉积求三角形面积。
注意点:求三角形面积时,叉积不能加绝对值,因为会出现面积正负抵消的情况