hdu2036 计算坐标内任意多边形的面积 含凹凸

来源:互联网 发布:新日铁软件 张涛 编辑:程序博客网 时间:2024/05/17 08:47

ac代码如下

这题中的任意多边形包括凹凸多边形,只需要记住其公式即可

面积为  第一个点与第二个点  第二个点与第三个点  一直到第n个点与第一个点的 叉乘  的和。


#include <stdio.h>
#include <stdlib.h>
int main()
{
        int i,n,x[101],y[101];
        while(~scanf("%d",&n)&&n)
        {
                for(i=1;i<=n;i++)
                {
                        scanf("%d%d",x+i,y+i);
                }
                double ans=0;
                for(i=1;i<=n;i++)
                {
                        if(i==n) ans+=x[n]*y[1]-y[n]*x[1];
                        else
                        {
                                ans+=x[i]*y[i+1]-y[i]*x[i+1];
                        }
                }
                printf("%.1lf\n",ans/2.0);
        }
        return 0;
}

0 0
原创粉丝点击