| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2321 人关注过本帖
标题:计算多边形面积的问题
只看楼主 加入收藏
popo1h
Rank: 1
等 级:等待验证会员
帖 子:1
专家分:0
注 册:2011-10-6
收藏
 问题点数:0 回复次数:0 
计算多边形面积的问题
    输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆时针顺序给出的n个顶点的坐标(x1, y1, x2, y2... xn, yn),为了简化问题,这里的所有坐标都用整数表示。
    输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理。
    对于每个测试实例,请输出对应的多边形面积,结果精确到小数点后一位小数。
    每个实例的输出占一行。
代码为:
#include <stdio.h>
#include <math.h>
double changdu(double x1,double y1,double x2,double y2);
int main ()
{
    double x[200],y[200];
    int i,j,n;
    double a,b,c,s,sum;
    while (scanf("%d",&n)&&n!=0)
    {
        for (i=0;i<n;i++)
        {
            scanf("%lf%lf",&x[i],&y[i]);
        }
        sum=0;
        for(i=2;i<n;i++)
        {
            a=changdu(x[i],y[i],x[0],y[0]);
            b=changdu(x[i-1],y[i-1],x[0],y[0]);
            c=changdu(x[i],y[i],x[i-1],y[i-1]);
            s=(a+b+c)/2;
            sum=sum+sqrt(s*(s-a)*(s-b)*(s-c));
        }
        printf("%.1lf\n",sum);
    }
    return 0;
}
double changdu(double x1,double y1,double x2,double y2)
{
    double a,b,c;
    a=pow(x1-x2,2);
    b=pow(y1-y2,2);
    c=sqrt(a+b);
    return c;
}


为什么答案正确但判断系统总是说:
time usage over 1010.000000
搜索更多相关主题的帖子: 测试 include double 小数点 
2011-12-02 15:50
快速回复:计算多边形面积的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014621 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved