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;