1 //任意多边形的面积 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #include <math.h> 6 using namespace std; 7 struct Node{ 8 int x,y; 9 }c[105]; 10 int main(){ 11 int n,i; 12 double result; 13 //x[i]*y[i+1]-x[i+1]*y[i]的累加和 14 while(scanf("%d",&n)&&n!=0){ 15 for(i=0;i<n;i++){ 16 cin>>c[i].x>>c[i].y; 17 } 18 c[n].x=c[0].x; 19 c[n].y=c[0].y; 20 result=0; 21 for(i=0;i<n;i++) 22 result+=0.5*(c[i].x*c[i+1].y-c[i].y*c[i+1].x); 23 24 printf("%.1lf\n",result);//顺时针输入的要取相反数. 25 } 26 return 0; 27 }
原文:https://www.cnblogs.com/tingtin/p/9385165.html