Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 1

Наиболее близколежащие точки

22.11.2019, 22:48. Показов 2422. Ответов 1

Студворк — интернет-сервис помощи студентам
Найдите пожалуйста ошибку.

На координатной плоскости заданы своими координатами N точек. Все точки пронумерованы от 1 до N. Определить номера двух наиболее близко расположенных друг от друга точек. Если таких пар точек несколько, то вывести пары точек с наименьшими номерами.

Во входном потоке в первой строке задано натуральное число N (3 <= N <= 100). В последующих N строках через пробел даны по два целых числа: координаты точки Xi и Yi (-1000 < Xi, Yi < 1000).

В выходной поток вывести через пробел в порядке возрастания два натуральных числа.

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
#include <iostream>
#include <cmath>
 
using namespace std;
int main()
{
  double m[303], katet, min = 1000000;
  int n, x, y, i, d, in1, in2;
  
  cin >> n;
  
  for(i = 1; i <= n*2; i += 2)
  {
    cin >> x >> y;
    m[i] = x;
    m[i+1] = y;
  }
  
  for(i = 1; i <= n*2; i += 2)
  {
    for(d = i+2; d <= n*2; d += 2)
    {
      katet = sqrt((m[i] - m[d]) * (m[i] - m[d]) + (m[i+1] - m[d+1]) * (m[i+1] - m[d+1]));
      if(katet < min)
      {
        min = katet;
      }
    }
  }
  for(i = 1; i <= n*2; i += 2)
  {
    for(d = i+2; d <= n*2; d += 2)
    {
      katet = sqrt((m[i] - m[d]) * (m[i] - m[d]) + (m[i+1] - m[d+1]) * (m[i+1] - m[d+1]));
      if(katet == min)
      {
        in1 = i/2+1;
        in2 = d/2+1;
        break;
      }
    }
  }
  cout << in1 << " " << in2;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.11.2019, 22:48
Ответы с готовыми решениями:

Найти близколежащие точки на плоскости
Уважаемые программисты, прошу помощи с такой задачей: Имеется файл &quot;test.search.txt&quot;. В нём разнообразные данные наблюдений, которые...

Дана точка A и множество B из N точек. Найти номер точки из множества B, наиболее удаленной от точки A
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #define B 100 using namespace std; void gen...

Наиболее удаленные точки друг от друга
Координаты n точек на плоскости заданы в виде двумерного массива K. Найти номера двух точек, расстояние между которыми наибольшее....

1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
23.11.2019, 01:37
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
#include <iostream>
 
using namespace std;
int main()
{
  double m[303], katet, min = 0;
  int n, x, y, i, d, in1=0, in2=1;
  
  cin >> n;
  
  for(i = 0; i < n; i ++)
      cin >> m[i] >> m[n+i];
  
  for(i = 0; i < n-1; i ++)
  {
    for(d = i+1; d < n; d ++)
    {
      katet = (m[i] - m[d]) * (m[i] - m[d]) + (m[i+n] - m[d+n]) * (m[i+n] - m[d+n);
      if((i==0 &&d==1) || katet < min)
      {
        min = katet;
        in1 = i;
        in2 = d;
      }
    }
  }
  cout << in1+1 << " " << in2+1;
  return 0;
}
Немного по другому расположил координаты в массиве. Первая половина - x, вторая - y
И корень брать не обязательно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2019, 01:37
Помогаю со студенческими работами здесь

Найти наиболее и наименее удаленные точки в массиве
как найти наиболее и наименее удаленные точки в массиве

Найти точки наиболее близкие друг к другу
В файле записано количество точек на плоскости и их координаты. Поместить эти координаты в двумерный динамический массив. Найти две точки,...

Найти две наиболее удаленных друг от друга точки
Структуры: I. Решить задачу, используя структуру point для хранения координат точки: Множество точек задано в пространстве. Найти две...

Найти две точки, наиболее близкие друг к другу
В файле записано количество точек на плоскости и их координаты. Поместить эти координаты в двумерный динамический массив. Найти две точки,...

Определить координаты точки наиболее близкой к центру тяжести
Для одинаковых материальных точек с координатами (Хi,Yi)i=1-5(от одного до пяти) определить точку. наиболее близкую к центру тяжести....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru