这道题目只要知道求多边形面积公式就很容易解决了。
多边形面积公式如下:
点顺序给出
S=0.5*abs(x1*y2-y1*x2+x2*y3-y2*x3+...+xn*y1-yn*x1)
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n,tmp,i;
float s;
int x[101],y[101];
while(scanf("%d",&n)&&n!=0){
tmp=0;
for(i=1;i<=n;i++)
scanf("%d%d",&x[i],&y[i]);
for(i=1;i<=n;i++){
if(i<n)
tmp=tmp+x[i]*y[i+1]-y[i]*x[i+1];
else
tmp=tmp+x[i]*y[1]-y[i]*x[1];
}
s=0.5*abs(tmp);
printf("%.1f\n",s);
}
return 0;
}
本文介绍了一种计算多边形面积的方法,并提供了一个C++实现示例。该方法使用了顶点坐标,通过计算各边向量的叉乘来得出多边形的总面积。
485

被折叠的 条评论
为什么被折叠?



