Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2009, 17:53   #1
MirandaX
Новичок
Джуниор
 
Регистрация: 25.05.2009
Сообщений: 4
По умолчанию Ближайшая точка к заданной. Язык си

Помогите пожалуйста добить задачу на си!
Условие такое: Задана точка А(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;
}
}
Все расстояния считаются верно. Как теперь их сравнить меду собой чтобы выбрать минимальное?
MirandaX вне форума Ответить с цитированием
Старый 25.05.2009, 18:56   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от MirandaX
Как теперь их сравнить меду собой чтобы выбрать минимальное?
Заведите переменную для минимального расстояния. Изначально она равна расстоянию между первыми точками.
В цикле сравнивайте r с этой переменной. Если r меньше, то сохраняем в переменной значение r.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.05.2009, 19:10   #3
MirandaX
Новичок
Джуниор
 
Регистрация: 25.05.2009
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Заведите переменную для минимального расстояния. Изначально она равна расстоянию между первыми точками.
Между первыми точками - это какими? Ну одна заданная, это понятно. А вторую как выбрать? получается ее заранее задать надо?
MirandaX вне форума Ответить с цитированием
Старый 25.05.2009, 19:17   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от MirandaX
А вторую как выбрать? получается ее заранее задать надо?
Первую точку (не A) читайте вне цикла.

В принципе, можно за максимум просто взять очень большое число (явно больше всех расстояний). Но имхо лучше первый вариант.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.05.2009, 19:24   #5
MirandaX
Новичок
Джуниор
 
Регистрация: 25.05.2009
Сообщений: 4
По умолчанию

Вот такая тема получилась, сравнивает только последнее r, как сделать чтобы все r сравнивал с min?

Код:
#include<iostream>
#include<math.h>
using namespace std;
void main()
{
float i,r,j;
float min = 999999;
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;
if (r < min) min = r;cout<<"r=" <<r<<endl;}
}
MirandaX вне форума Ответить с цитированием
Старый 25.05.2009, 19:29   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так он все сравнивает. Вы после цикла добавьте просто вывод min.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.05.2009, 18:25   #7
MirandaX
Новичок
Джуниор
 
Регистрация: 25.05.2009
Сообщений: 4
По умолчанию

а да, точно, чтото я сглупила))
Спасибо!
MirandaX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точка пересечения отрезков Witaliy Помощь студентам 5 25.12.2011 13:15
точка доступа WiFi Bayazet Компьютерное железо 3 12.12.2009 03:09
Точка с запятой Xanex Общие вопросы C/C++ 1 02.05.2009 14:31
Пренадлежит-ли точка функции? Conso Помощь студентам 4 29.01.2008 15:28
Точка на полигоне? Роман Радер Общие вопросы Delphi 14 12.02.2007 17:08