1
该程序用于查找网格中N个点的最小距离的最小值,从而选择集线器中的一个点。如果一个人想从一点到另一点,他必须通过枢纽点。该程序得到了遵守,但它没有扫描输入。找到最长距离的最小值
#include<stdio.h>
#include<conio.h>
#include <math.h>
int abs1(int,int);
int dist(int,int,int,int);
main()
{
int x[200],y[2000],m,min,max1,max2,i,j,n,d[1000][1000];
scanf("%d",&n);
scanf("\n");
for(i=0;i<n;i++)
{
scanf("\n%d",&x[i]);
scanf("%d",&y[i]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j)
continue;
d[i][j]=dist(x[i],x[j],y[i],y[j]);
}
}
min=10000;
for(i=0;i<n;i++)
{
max1=0;
max2=0;
for(j=0;j<n;j++)
{
if(i==j)
continue;
if(d[i][j]>max1)
max1=d[i][j];
else if(d[i][j]>max2)
max2=d[i][j];
}
m=max1+max2;
if(m<min)
min=m;
}
printf("\n%d",min);
getch();
}
int abs1(int p,int q)
{
if((p-q)<0)
return (q-p);
else
return (p-q);
}
int dist(int x1,int x2,int y1,int y2)
{
int e;
e=abs1(x1,x2)+abs1(y1,y2);
return(e);
}
删除'scanf(“\ n”);' – herohuyongtao
相关:[大二维数组给出分段错误](http://stackoverflow.com/questions/851122/large-2d-array-gives-segmentation-fault) – WhozCraig