由键盘输入n(n<50)个点的坐标x,y(x,y<1000,浮点数),计算出最近两个点的距离。(保留三位小数)
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
double distance(double x1, double y1, double x2, double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
int n,i,j;
double sands;
scanf("%d",&n);
double a[50][2];
for(i=0;i<n;i++)
{
for(j=0;j<2;j++)
{
scanf("%lf",&a[i][j]);
}
}
double len=distance(a[0][0],a[0][1],a[1][0],a[1][1]);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
sands=distance(a[i][0],a[i][1],a[j][0],a[j][1]);
if(sands<len)
len=sands;
}
}
printf("%.3lf",len);
}