awsmpshk

Номер 3 со второго скрина

May 7th, 2020
98
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. struct Point {
  7.   double x, y, z; // коор-ты точки
  8.   void show() // функция вывода на экран координат точки
  9.   {
  10.     cout << x << " " << y << " " << z << endl;
  11.   }
  12.   double distance() // подсчет расстояния от начала координат до текущей точки
  13.   {
  14.     return sqrt(x * x + y * y + z * z);
  15.   }
  16. };
  17.  
  18. Point searchNearestOne(Point* base, int n) // поиск наиболее удаленной точки
  19. {
  20.   Point nearOne = base[0]; // инициализируем переменную под наименее удаленную точку
  21.   double dist, min_dist = base[0].distance(); // задаём текущее расстояние и минимальное
  22.   for (int i = 1; i < n; ++i) // поиск минимального расстояния, переприсваивая значение объекту nearOne
  23.   {
  24.     dist = base[i].distance(); // подчет текущего расстояния
  25.     if (dist < min_dist) // сравнение с минимальным
  26.     {
  27.       min_dist = dist; // переприсваеваем расстояние на минимальное
  28.       nearOne = base[i]; // переприсваеваем точку наименее удаленной точке
  29.     }
  30.   }
  31.   return nearOne; // возвращаем объект с координатами наименее удаленной точки
  32. }
  33.  
  34. int main()
  35. {
  36.   int n;
  37.   cin >> n; // вводим количество точек
  38.   Point* base = new Point[n]; // объявляем массив точек размером n
  39.   for (int i = 0; i < n; ++i) // ввод координат каждой точки
  40.   {
  41.     cin >> base[i].x >> base[i].y >> base[i].z;
  42.   }
  43.   Point nearOne = searchNearestOne(base, n); // вызываем функцию для поиска наиболее удаленной точки от (0, 0)
  44.   nearOne.show(); // выводим информацию об этой точке
  45.  
  46.   delete[] base; // освобождаем память от всех точек, потому что они больше не нужны
  47.   return 0;
  48. }
RAW Paste Data Copied