n边形面积
输入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; }