本文主要是介绍HDU 2036 求多边形面积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=2036
对用(按逆时针排列)描述的多边形,其面积为:
若按顺时针排列,取负数即可。
资料链接:
http://zh.wikipedia.org/wiki/%E5%A4%9A%E8%BE%B9%E5%BD%A2不知道这公式是咋推导的,网上找不到,先留着。
#include<stdio.h>
struct Point
{int x,y;
}p[101];
double area(struct Point*a,int n)
{double sum=0;int i;for(i=0;i<n;i++){sum+=a[i].x*a[(i+1)%n].y-a[(i+1)%n].x*a[i].y;}sum=sum/2.0;return sum;
}
int main()
{int n,i;while(scanf("%d",&n)!=EOF&&n!=0){for(i=0;i<n;i++){scanf("%d%d",&p[i].x,&p[i].y);}double ar;ar=area(p,n);printf("%.1lf\n",ar);}return 0;
}
这篇关于HDU 2036 求多边形面积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!