很水哦!
找到距离最远的两点,两点的中点为圆心,距离的一半为半径!
#include<stdio.h>
#include<math.h>struct node
{
double x,y;
}a[600];
int main()
{
int n,i,j;
double b,c,r,w;
while(scanf("%d",&n),n)
{
r=0.0;
for(i=1;i<=n;i++)
scanf("%lf%lf",&a[i].x,&a[i].y);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
w=sqrt((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y))/2;
if(w>r)
{
r=w;
b=(a[i].x+a[j].x)/2.0;
c=(a[i].y+a[j].y)/2.0;
}
}
printf("%.2f %.2f %.2f\n",b,c,r);
}
return 0;
}
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3007