Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alex-One
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 52
#1

Среди заданных точек на плоскости найти ту, у которой расстояние суммы равно наибольшему от остальных точек - C++

27.02.2014, 09:28. Просмотров 531. Ответов 1
Метки нет (Все метки)

Помогите вывести не цифру наибольшего значения, а все число.
Задача: среди заданных точек на плоскости, найти ту у которой расстояние суммы равно наибольшему от остальных точек.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdlib.h>
#include <iomanip.h>
#include <math.h>
main ( )
{
 
system("chcp 1251>0");
 
 
unsigned int n;
 
cout<<"Введите кол-во точек"<<endl;
cin>>n;
 
int *x=new int[n];
int *y=new int[n];
double *d=new double[n];
 
int i,j;
srand(n);
cout<<"Координаты"<<endl;
cout<<setw(10)<<"x"<<"         y"<<endl;
for (i=1; i<=n; i++)
{
x[i]=-10+rand()%20;
y[i]=-10+rand()%20;
cout<<setw(10)<<x[i];
cout<<setw(10)<<y[i];
cout<<endl;
}
cout<<"Сумма расстояний"<<endl;
for(i=1;i<=n;i++)
    {
    d[i]=0;
    for(j=1;j<=n;j++) if (j!=i) {
                      d[i]+=sqrt(pow((double)(x[j]-x[i]),2)+pow((double)(y[j]-y[i]),2));
                      }
    cout<<setw(10)<<d[i]<<endl;
    }
    int max;
    max=0;
    for(i=1;i<n;i++)
        if(d[i]>d[max]) max=i;
 
 
            cout<<"Максимальное расстояние:   "<<max<<endl;
            cout<<"x="<<x[max]<<"     y="<<y[max]<<endl;
system ("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 09:28     Среди заданных точек на плоскости найти ту, у которой расстояние суммы равно наибольшему от остальных точек
Посмотрите здесь:
C++ Найти точку на плоскости, сумма расстояний от которой до остальных точек множества максимальна
Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна C++
C++ Дано множество точек на плоскости, заданных полярными координатами. Получить декартовы координаты этих точек
Функция, которая вернет номера двух из трех заданных точек на плоскости, расстояние между которыми минимально C++
C++ Определить радиус и центр наибольшей окружности в области заданных точек, внутри которой нет точек
C++ Среди точек первого множества найти такую,которая принадлежит наибольшему количеству множеств.
C++ Найти число точек и сумму расстояний от первой точки до остальных точек
C++ В заданном множестве точек плоскости найти количество точек в каждой из четвертей
C++ В заданном множестве точек плоскости найти количество точек в каждой из четвертей
Из множества точек на плоскости найти точки, образующие параллелограмм с наибольшим количеством точек внутри C++
Найти какая из двух заданных точек ближе к третьй, вывести найденное расстояние (использовать оператор switch) C++
Расстояние между двумя заданными множествами точек на плоскости C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mihail Samohval
5 / 5 / 1
Регистрация: 06.06.2013
Сообщений: 23
27.02.2014, 10:22     Среди заданных точек на плоскости найти ту, у которой расстояние суммы равно наибольшему от остальных точек #2
Во-первых, явно имелось ввиду "сумма расстояний", а не "расстояние суммы"? )

ну а само расстояние выводится очень просто.
C++
1
2
3
4
int max; double max_value;
    max=0;
    for(i=1;i<n;i++)
        if(d[i]>d[max])  { max=i; max_value = d[i]; }
и в переменную max_value положится максимальная сумма расстояний.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru