Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Поиск точки ближайшей к заданной
Надо добить задачу на си! Нужна помощь!
Условие такое: Задана точка А(4,5) и есть куча других точек, чьи координаты мы задаем с клавиатуры.
Нужно выбрать из этой кучи точек ближайшую к А.

#include<iostream>
#include<math.h>
using namespace std;
void main()
{
float i,r,j;
while (i!=10 && j!=10)// например!! 10 и 10 координаты последней точки, которой мы завершаем ввод.
{
cout<<"zadaite koordinaty sleduyuwei tochki "<<"i=";
cin>>i;
cout<<"zadaite koordinaty sleduyuwei tochki "<<"j=";
cin>>j;
r=sqrt(pow((i-4),2)+pow((j-5),2));
cout<<"r=" <<r<<endl;
}
}
Все расстояния считаются верно. Как теперь их сравнить между собой чтобы выбрать минимальное?
Буду очень признательна!

1 | Автор: MirandaX | 2009-05-25, 17:01   --------->
CИ не знаю, но алгоритм таков:
-считаешь динну отрезков по формуле d=sqrt((x2-x1)^2 + (y2-y1)^2)
-записываешь в матрицу
-ищешь минимальный елемент
-номер минимального елемента=номеру точки


Меня все время преследуют умные мысли... но я быстрее!!!
2 | Автор: guru | 2009-05-25, 20:36   |  Репутация: [ + 8 ]
Если правильно считает R (я не проверял) то вот вроде должно рулить
Code

#include<iostream>
#include<math.h>
using namespace std;
void main()
{
float i,r,j,MAX=0;
while (i!=10 && j!=10)
{
         cout<<"zadaite koordinaty sleduyuwei tochki "<<"i=";
         cin>>i;
         cout<<"zadaite koordinaty sleduyuwei tochki "<<"j=";
         cin>>j;
         r=sqrt(pow((i-4),2)+pow((j-5),2));
         if(r>MAX) MAX=r;
}
cout<<"MAX=" <<MAX<<endl;
}


Насколько проще была бы жизнь если бы она была в исходниках
3 | Автор: LofD | 2009-05-26, 00:31   |  Репутация: [ + 14 ]


Насколько проще была бы жизнь если бы она была в исходниках
3 | Автор: LofD | 2009-05-26, 00:31   |  Репутация: [ + 14 ]
LOfD спасибо) почти так в итоге и сделала!
4 | Автор: MirandaX | 2009-05-26, 17:27   --------->
  • Страница 1 из 1
  • 1
Поиск: