Форум программистов, компьютерный форум, киберфорум
Наши страницы

Поиск ближайших точек - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ запись структуры в бинарное дерево http://www.cyberforum.ru/cpp-beginners/thread36854.html
Вот мой код, но он почему-то не строит дерево, причина скорее всего в этом куске функции: if (strcmp(word, a->name)==0) { a->pnumb++; strncpy(a->alboms, &s,20);...
C++ Список сортировка Помогите отсортировать этот список пожалуйста #include <vcl.h> #include<iostream.h> #include<conio.h> struct node { int value; node *next; }; http://www.cyberforum.ru/cpp-beginners/thread36851.html
C++ Отсортировать столбцы матрицы методом пузырька
Помогите, пожалуйста, найти ошибку. Дана матрица n*n. Каждый столбец матрицы с номером 2i по убыванию элементов, а с номаром 2i+1 по возрастанию элементов методом пузырька. #include <iostream>...
C++ Как написать массив?
Нужно написать программу, в которой массив сможет принимать любые типы данных, например: float, char, int. Помогите пожалуйста.. :) У меня получились вот такие наброски: #include <conio.h>...
C++ код реализации класса вектор http://www.cyberforum.ru/cpp-beginners/thread36821.html
привет!!!!!!! поделитесь пожалусто кодом реализации класса вектор!!!!!! пожалусто........ нужно к завтрашнему(((99:help::'(
C++ решение судоку Судоку размера n называется квадрат со стороной n2, разделенный на n2 средних квадратов со стороной n, каждый из которых разделен на n2 маленьких квадратов. В каждом маленьком квадрате записано число... подробнее

Показать сообщение отдельно
SilentM
0 / 0 / 0
Регистрация: 20.04.2009
Сообщений: 21

Поиск ближайших точек - C++

27.05.2009, 23:32. Просмотров 767. Ответов 0
Метки (Все метки)

Здравствуйте! Есть задача, язык си:
1.Фиксируем несколько точек (А,Б,С.Д и т.д. их может быть сколько угодно), их координаты вводим с клавиатуры
2.Около них имеется множество других точек, чьи координаты мы также задаем с клавиатуры.
3.Надо найти из этого "множества других точек" ближайшую к каждой из пункта 1, а также вывести это минимальное расстояние и координаты этой точки.
Ну т.е. в ответе мы должны иметь типа :
"
ближайшая к А точка Б1 с координатами (2,3), расстояние=4
ближайшая к Б точка Б2 с координатами (3,7), расстояние=2
ближайшая к С точка Б3 с координатами (1,7), расстояние=3
ближайшая к Д точка Б4 с координатами (3,7), расстояние=1.73
..."
и т.д. для каждой точки.


Есть код, который работает так же, но только для 1 точки. Т.е в пункте 1. мы имеем не (А,Б,С,Д..) а только А
Т.е. фактически мне нужно вставить в этот код условие для множества точек.
Не знаю как сделать, помогите пожалуйста!

Код
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
int k,n,m;
float r,p;

cout<< "zadaite kolichestvo sravnivaemyh tochek (vmeste s A): ";
cin>> k;

float **B;
B = new float *[k];
for (int i = 0; i < k; i ++)
B[i] = new float [2];
B[0][0]=4, B[0][1]=5;

for (n=1; n<k; n++)
{
cout<<"vvedite koordinaty"<< n<<" tochki:\n";
cout<<"x"<<n<<"= ";
cin>>B[n][0];
cout<<"y"<<n<<"= ";
cin>>B[n][1];
}

m=1;
r=sqrt((B[0][0]-B[1][0])*(B[0][0]-B[1][0])+(B[0][1]-B[1][1])*(B[0][1]-B[1][1]));

for (n=2; n<k; n++)
{
p=sqrt((B[0][0]-B[n][0])*(B[0][0]-B[n][0])+(B[0][1]-B[n][1])*(B[0][1]-B[n][1]));
if (p<r)
{m=n, r=p;}
}
cout<<"tochka B"<<m<<" raspolozhena na minimalnom rasstoyanii r="<<r<<"\n";

return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru