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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 19:43   #1
LaDark
Пользователь
 
Регистрация: 01.11.2010
Сообщений: 14
По умолчанию Пара точек с наибольшим расстоянием C++

Текст задания:
Даны точки (x1, y1), (x2, y2) ... до (xN, yN), где N<30. Нужно найти и вывести на экран пару точек, расстояние между которыми будет наибольшим и вывести это расстояние.
Код:
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int x1[2];
	int y1[2];
	int x2[2];
	int y2[2];
	for (int i=0; i<2; i++){
		cout<<"dlya X1 - ";
		cin>>x1[i];
        cout<<"dlya Y1 - ";
		cin>>y1[i];
	}
		for (int j=0; j<2; j++){
		cout<<"dlya X2 - ";
		cin>>x2[j];
        cout<<"dlya Y2 - ";
		cin>>y2[j];}
	double max=0.0, r;
	for (int i=0; i<2; i++)
		{
			r=sqrt((x1[i]-x2[i])*(x1[i]-x2[i]))+((y1[i]-y2[i])*(y1[i]-y2[i]));
			if (r>max)
				max=r;
		}
		cout<<" ------ "<<r<<" ------ ";
	return 0;
}
Почему-то не работает sqrt, пишет про неоднозначный вызов функции. Так же не знаю, как вывести на экран координаты пары точек с наибольшим расстоянием. Наибольшее расстояние нашел, а координаты вывести как не знаю. Может кто поможет?
LaDark вне форума Ответить с цитированием
Старый 15.11.2010, 19:57   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Попробуйте так:
Код:
r=sqrt((x1[i]-x2[i])*(x1[i]-x2[i]))+((y1[i]-y2[i])*(y1[i]-y2[i]) + 0.0);
Цитата:
Наибольшее расстояние нашел, а координаты вывести как не знаю.
Заведите четыре переменные, в которых сохраните очередные максимальные координаты, там где сравниваете расстояния, в конце выведите эти переменные.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 15.11.2010, 20:05   #3
LaDark
Пользователь
 
Регистрация: 01.11.2010
Сообщений: 14
По умолчанию

Благодарю. Попробуем.

Все равно пишет, что неоднозначный вызов функции.

Последний раз редактировалось Stilet; 15.11.2010 в 20:12.
LaDark вне форума Ответить с цитированием
Старый 15.11.2010, 20:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Приведение типов еще не отменяли.
Код:
r=sqrt((double)(x1[i]-x2[i])*(x1[i]-x2[i]))+((y1[i]-y2[i])*(y1[i]-y2[i]));
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2010, 20:22   #5
LaDark
Пользователь
 
Регистрация: 01.11.2010
Сообщений: 14
По умолчанию

Да, то что надо
LaDark вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присвоение гиперссылки файлу с наибольшим значением в последнем символе. TiG Microsoft Office Excel 0 27.01.2010 12:57
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) kcю Помощь студентам 0 17.11.2009 19:50
Помогите найти строку с наибольшим кол-вом отриц. эл-ов Danil21 Общие вопросы C/C++ 1 21.06.2009 11:54
Напечатать строку с наибольшим количеством слов. jenja Помощь студентам 9 07.03.2008 05:28