输入n,表示边数,接着逆时针输入坐标,球多边形面积(注意多边形凹凸性!!!)
#include<stdio.h>
int main( )
{
int n;
while(scanf("%d",&n) && n)
{
int i;
float a[100][2],s=0;
scanf("%f %f",&a[0][0],&a[0][1]);
for(i=1;i<n;i++)
{
scanf("%f %f",&a[i][0],&a[i][1]);
//选取(0,0)为基准点,用向量差乘法求每个三角形的面积
s+=a[i-1][0]*a[i][1]-a[i][0]*a[i-1][1];
//x[i]*y[i+1]-x[i+1]*y[i] 累加之后变可得三角线面积
}
//累加之后时凹三角形多出来的部分被消除了,
s+=a[0][1]*a[n-1][0]-a[0][0]*a[n-1][1];
//注意第一个点和最后一个点以及原点构成的三角形也要算进来
printf("%.1f\n",s/2);
//注意差乘是有顺序的!!!谁在先谁在后都是有学问的
}
//要好好研究一下,不要知道了皮毛就拿去用
return 0;
}