博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

求任意多边形面积--改革春风吹满地

Posted on 2012-08-08 11:33  皇星客栈--Linux  阅读(131)  评论(0编辑  收藏  举报

#include<stdio.h>
int main( )
{
    int n;
    int x[3];
    int y[3];
    double s;
    while( scanf("%d",&n) == 1 )
    {
        if ( n == 0 )
        {
            break;
        }
        if( n >= 3 && n <= 100 )
        {
            s = 0;
            scanf("%d %d",&x[0],&y[0]);
            x[2] = x[0];
            y[2] = y[0];
            while( --n )
            {
                scanf("%d %d",&x[1],&y[1]);
                s += x[0]*y[1] - x[1]*y[0];
                x[0] = x[1];
                y[0] = y[1];
            }
            s += x[0]*y[2] - x[2]*y[0];
            printf("%.1lf\n", s/2);
        }
    }
    return 0;
}