| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2304 人关注过本帖
标题:杭电1007
只看楼主 加入收藏
大秦嬴
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:31
注 册:2016-11-30
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:8 
杭电1007
问题描述
你曾经在操场上玩掷?投掷是一种游戏,平环是针对一些玩具,所有玩具被授予。
在cyberground领域,每个玩具的位置是固定的,和环是经过精心设计,所以它只能围绕一个玩具的时候。另一方面,为了使游戏看起来更有吸引力,该环的设计有最大的半径。给定一个字段的配置,你应该找到这样一个环的半径。
假设所有的玩具都是平面上的点。一个点是包围圈如果点和环中心之间的距离小于半径的环。如果两个玩具被放置在同一点上,该环的半径被认为是0。
输入
输入包括几个测试用例。对于每一种情况,第一行包含一个整数n(2 < = N = 100000),在该领域的玩具总数。然后N行跟随,每个包含一对(x,y),这是一个玩具的坐标。输入终止由N = 0。
输出
对于每一个测试案例,在一行的cyberground经理要求的环半径打印,精确到小数点后2位。

下面是我的代码,结果是Runtime Error
(ACCESS_VIOLATION)
求大神指点。

#include <stdio.h>
#include <math.h>
int main()
{
    int n,i;
    float x[1000],y[1000];
    float max;
    while(scanf("%d",&n)!=EOF,n)
    {
        for(i=0;i<n;i++)
            scanf("%f %f",&x[i],&y[i]);
            if(n==1);
            else
        {
        max=sqrt(pow(x[1]-x[0],2)+pow(y[1]-y[0],2));
        if(n>2)
             for(i=2;i<n;i++)
                if(sqrt(pow(x[i]-x[i-1],2)+pow(y[i]-y[i-1],2))>max)
                    max=sqrt(pow(x[i]-x[i-1],2)+pow(y[i]-y[i-1],2));
        printf("%.2f\n",max/2);
        }
    }
    return 0;
}
搜索更多相关主题的帖子: 吸引力 最大的 领域 平面 玩具 
2017-02-08 19:23
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
收藏
得分:5 
我看不懂题目

我是硬件工程师
2017-02-08 20:25
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:5 
译文太烂,机器翻译的吧?楼主既然能写出这个程序,用你自己的话解释一下题目吧。
2017-02-08 21:03
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

在我这运行成这样


我是硬件工程师
2017-02-08 21:07
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
大概是求任意两点之间的最小距离~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-02-08 23:03
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
普通算法可能会超时,参考~

https://bbs.bccn.net/thread-473320-1-1.html

~~题目竟然一样耶~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-02-08 23:06
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:5 
同样看迷糊了。。。
不过喜欢这句,巧妙的逗号
while(scanf("%d",&n)!=EOF,n)
2017-02-08 23:10
绿意盎然
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:47
专家分:60
注 册:2017-1-5
收藏
得分:5 
2017-02-09 08:35
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
以下是引用kin3z在2017-2-8 23:10:42的发言:

同样看迷糊了。。。
不过喜欢这句,巧妙的逗号
while(scanf("%d",&n)!=EOF,n)



这个逗号用的并不好,如果读到文件尾,scanf返回-1,n值未改变还是上一次的值,会导致死循环超时。

ps:楼主的错误是因为数组开小了,题中给出范围是2 <= N <= 100,000。


[fly]存在即是合理[/fly]
2017-02-09 09:09
快速回复:杭电1007
数据加载中...
 
   



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

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