利用多边形(n边形)面积计算公式:S=0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) ),
其中点(x0,y0), (x1, y1), ... , (xn,,yn)为多边形上按逆时针顺序的顶点((x0,y0)与(xn,yn)为同一点)。
#include<stdio.h>
#include<math.h>
#include<string.h>
main()
{
int n,x1,y1,x2,y2,i,x,y;
double sum;
while(scanf("%d",&n)&&n)
{
sum=0;
scanf("%d %d",&x1,&y1);
x=x1;y=y1;
for(i=0;i<n-1;i++)
{
scanf("%d %d",&x2,&y2);
sum+=(x1*y2-x2*y1);
x1=x2;
y1=y2;
}
sum+=(x1*y-y1*x);
printf("%.1lf\n",sum*0.5);
}
}