c编程 - 计算两个不同点之间的最大距离

时间:2011-11-13 14:50:58

标签: c

首先,我写这段代码:

int X, Y;
for (i=0; i<N; i++)
{
    printf("Enter X and Y: ");
    scanf("%d %d", &X, &Y);
}

int A[X][Y];

for (int i=0;i<X;i++){
    for (int j=0;j<Y;j++){
        printf("A[i][j]:");
        scanf("%d", &A[i][j]);
    }
}

但是,我无法改进它的计算。

2 个答案:

答案 0 :(得分:3)

您似乎要寻找的是点之间的furthest neighbour。编写蛮力解决方案是微不足道的,只需比较每对可能的点之间的距离。根据链接,存在更好的解决方案。

修改:两点之间的距离为

double distance(double x1,double y1,double x2, double y2)
{
  return sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
}

答案 1 :(得分:1)

以下是一些提示:

  • 每个点都需要多个变量,所以你必须使用_ _ _ _ _ _(在这里写下你的答案)
  • 两点之间的距离可以通过毕达哥拉斯定理来计算
  • 您必须将每个点的距离与每个其他点的距离进行比较