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