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; // коор-ты точки
- void show() // функция вывода на экран координат точки
- {
- cout << x << " " << y << endl;
- }
- double distance() // подсчет расстояния от начала координат до текущей точки
- {
- return sqrt(x * x + y * y);
- }
- };
- Point searchFurtherOne(Point* base, int n) // поиск наиболее удаленной точки
- {
- Point furOne = base[0]; // инициализируем переменную под наиболее удаленную точку
- double dist, max_dist = base[0].distance(); // задаём текущее расстояние и максимальное
- for (int i = 1; i < n; ++i) // поиск максимального расстояния, переприсваивая значение объекту furOne
- {
- dist = base[i].distance(); // подчет текущего расстояния
- if (dist > max_dist) // сравнение с максимальным
- {
- max_dist = dist; // переприсваеваем расстояние на максимальное
- furOne = base[i]; // переприсваеваем точку наиболее удаленной точке
- }
- }
- return furOne; // возвращаем объект с координатами наиболее удаленной точки
- }
- 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;
- }
- Point furOne = searchFurtherOne(base, n); // вызываем функцию для поиска наиболее удаленной точки от (0, 0)
- furOne.show(); // выводим информацию об этой точке
- delete[] base; // освобождаем память от всех точек, потому что они больше не нужны
- return 0;
- }
Add Comment
Please, Sign In to add comment