- 在教材3.4节中两个问题(最近对问题、凸包问题)中任意选择一个问题,编程实现用蛮力法求解。 具体算法参考教材40-42页。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int bestPoints(int n) {
int d=1000, i, j, t, x[100], y[100],k,l;
for (i= 0; i < n ; i++) {
k=rand()%100+1;
l=rand()%100+1;
x[i]=k;
y[i]=l;
printf("x[%d]=%d,y[%d]=%d\n",i,k,i,l);
}
for (i = 1; i < n; i++)
for (j=i+1; j < n+1; j++) {
t = (x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
if (d*d > t) {
d = t;
}
}
return (int)sqrt(d);
}
int main() {
int n, p[100];
printf("输入点的个数:");
scanf("%d", &n);
printf("最近的距离为:%d\n",bestPoints(n));
return 0;
}