杭电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;
}