Показать сообщение отдельно
Старый 03.01.2013, 16:05   #2
Welsper
Новичок
 
Пол:Мужской
Регистрация: 03.01.2013
Сообщений: 1
Репутация: 0
По умолчанию Re: не корректно выводит min из массива [с++]

1) Границы циклов неправильные, проходим не все, зато остальное 2 раза проверяем... жесть.
2) Сначала найди минимальное расстояние, потом выводи что ему соответствует.

примерно такой код (надеюсь xySqrt так и сделана, что принимает x1,x2,y1,y2, а не x1,y1,x2,y2):

Код:
min = xySqrt(ms[0].x,ms[1].x,mx[0].y,ms[1].y);
for (i=0; i<k-1; i++)
  for (j=i+1; j<k; j++)
  {
    float mm = xySqrt(ms[i].x,ms[j].x,ms[i].y,ms[j].y);
    if (mm < min)
      min = mm;
  }

cout << "min distance: " << min << " on points:" << endl;

for (i=0; i<k-1; i++)
  for (j=i+1; j<k; j++)
     if (min = xySqrt(ms[i].x,ms[j].x,ms[i].y,ms[j].y))
       cout << i << ") x:" << ms[i].x << "  y:" << ms[i].y << " --- "
              << j << ") x:" << ms[j].x << "  y:" << ms[j].y << endl;
Welsper вне форума
 
Ответить с цитированием Вверх
 
Время генерации страницы 0.09656 секунды с 10 запросами