题目大意:
给你逆时针n个坐标点,要求求一个多边形的面积(多边形可能为凸多边形or凹多边形)。
解题思路:
利用叉积的思想,改进版是只要求一个循环的点的关系。S=0.5*abs(x1*y2-y1*x2+x2*y3-y2*x3+...+xn*y1-yn*x1);
代码:
#include
const int MAX=105;
using namespace std;
typedef struct point
{
double x;
double y;
point(double a=0,double b=0) :x(a),y(b) {}
}P;
P po[MAX];
int n;
double areaCount()//可计算凹ro凸多边形
{
double ans=0;
for(int i=0;i>n,n)
{
for(i=0;i>po[i].x>>po[i].y;
double ans=areaCount();
printf("%.1lf\n",ans);
}
return 0;
}