hdoj2036 c语言实现(任意多边形的面积

#include 
#include 

int main()
{
    int n;
    int x[1000];
    int y[1000];
    while(scanf("%d",&n)&&n!=0)
    {
        int  sum=0;
        double ans=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d %d",&x[i],&y[i]);
        }

        for(int k=1;k<=n-1;k++)
        {
            sum=sum+(x[k]*y[k+1]-x[k+1]*y[k]);

        }
        sum=sum+(x[n]*y[1]-y[n]*x[1]);
        ans=0.5*abs(sum);
        printf("%.1f\n",ans);

    }
}

值得注意的是,abs()函数仅对整数取绝对值 ;
任意多边形的面积公式我在这里粘贴一下。。。
下面给出的公式,就是任意多边形的面积公式:

这里写图片描述

这个公式后面还要加xn*y1-yn*x1;
证明网址贴上http://blog.csdn.net/sun_shine_/article/details/18799739

你可能感兴趣的:(hdoj)