简单的几何入门题。
把多边形划分成n-2个三角形,然后叉积的一半就是一个三角形的面积,相加就可以了。
#include<stdio.h>
struct node{
int x,y;
}p[105];
double count(node a,node b,node c){
return (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x);
}
int main()
{
int n;
while(scanf("%d",&n),n){
for(int i=0;i<n;i++){
scanf("%d %d",&p[i].x,&p[i].y);
}
double s=0;
for(int i=0;i<n;i++){
s+=count(p[0],p[i],p[(i+1)%n])/2.0;
}
printf("%.1lf\n",s);
}
return 0 ;
}