Индекс ближайшей точки в массиве, каждый из которых содержит 3 элемента - PullRequest
2 голосов
/ 18 апреля 2020

Я пытаюсь найти индекс ближайшей точки в массиве (pts), содержащем 3 элемента каждый. Я написал следующий код, но он не возвращает мне индекс ближайших пунктов: - Буду признателен, если кто-нибудь может, пожалуйста, дайте мне знать, где я. я не прав Спасибо!

void point_index(Point pts[], int &size)



}
cout << x << "   " <<  y << endl;

Спасибо всем за помощь! Я разобрался в своей ошибке и исправил код!

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Вы не сохраняете минимальное значение в min, после сравнения сохраняйте минимальное значение в min и устанавливайте значение расстояния снаружи, если сравнивать правильно.

a = get_distance(pts[i],pts[j]);
if (a < min) {
     x = i;
     y = j;
     min = a;
}
0 голосов
/ 18 апреля 2020

Как только вы найдете минимум, вам нужно назначить x, y и min. Попробуйте этот код:

double a;
int x = 0, y = 1;

double min = get_distance(pts[x],pts[y]);
for (int i = 0; i < size; i++) 
{
    for (int j = i+1; j < size; j++) 
    {
        double d = get_distance(pts[i], pts[j]);
        if (d < min) 
        {
            x = i;
            y = j;
            min = d;
        }
    }
}
cout << x << "   " <<  y << endl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...