Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- struct Point {
- double x, y, z; // коор-ты точки
- void show() // функция вывода на экран координат точки
- {
- cout << x << " " << y << " " << z << endl;
- }
- double distance() // подсчет расстояния от начала координат до текущей точки
- {
- return sqrt(x * x + y * y + z * z);
- }
- };
- Point searchNearestOne(Point* base, int n) // поиск наиболее удаленной точки
- {
- Point nearOne = base[0]; // инициализируем переменную под наименее удаленную точку
- double dist, min_dist = base[0].distance(); // задаём текущее расстояние и минимальное
- for (int i = 1; i < n; ++i) // поиск минимального расстояния, переприсваивая значение объекту nearOne
- {
- dist = base[i].distance(); // подчет текущего расстояния
- if (dist < min_dist) // сравнение с минимальным
- {
- min_dist = dist; // переприсваеваем расстояние на минимальное
- nearOne = base[i]; // переприсваеваем точку наименее удаленной точке
- }
- }
- return nearOne; // возвращаем объект с координатами наименее удаленной точки
- }
- int main()
- {
- int n;
- cin >> n; // вводим количество точек
- Point* base = new Point[n]; // объявляем массив точек размером n
- for (int i = 0; i < n; ++i) // ввод координат каждой точки
- {
- cin >> base[i].x >> base[i].y >> base[i].z;
- }
- Point nearOne = searchNearestOne(base, n); // вызываем функцию для поиска наиболее удаленной точки от (0, 0)
- nearOne.show(); // выводим информацию об этой точке
- delete[] base; // освобождаем память от всех точек, потому что они больше не нужны
- return 0;
- }
Add Comment
Please, Sign In to add comment