这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
用到了数学的知识:
求多边形面积:(可以是凸多边形或者凹多边形)
S = 1/2 * abs(∑(xiyi+1 – xi+1yi))
#include
#include
using namespace std;
typedef struct point{
int x, y;
}point;
point polygon[101];
int main()
{
int num;
while(scanf("%d", #) && num)
{
double area = 0.0;
for(int i = 0; i < num; ++i)
scanf("%d %d", &polygon;[i].x, &polygon;[i].y);
for(int i = 0; i < num; ++i)
area += (polygon[i].x * polygon[(i+1)%num].y) - (polygon[(i+1)%num].x * polygon[i].y);
printf("%.1lf\n", area/2.0);
}
return 0;
}