C/C++

Структура и массив структуры С++ Помогите пожалуйста

Сформировать массив из элементов структурного типа.Ввести данные для десяти элементов массива. Вывести массив на экран

(Определить структурный тип, описывающий окружность и состоящий из трех полей: радиус, координата центра X, координата центра Y. Вывести координаты центра окружности (окружностей), расположенной ближе всех к началу координат.)

Для вывода массива структур на экран и поиска элементов в массиве написать отдельные функции.
#include <algorithm>
#include <iostream>
#include <cmath>
#include <array>
using namespace std;
struct Point {
double x;
double y;
Point() : x(0), y(0) {}
Point(const double x, const double y) : x(x), y(y) {}
double length(const Point& p)const {
return sqrt(pow(p.x - x, 2) + pow(p.y - y, 2));
}
private:
friend istream& operator>>(istream& inp, Point& p) {
cout << "x: ";
inp >> p.x;
cout << "y: ";
inp >> p.y;
puts("");
return inp;
}
friend ostream& operator<<(ostream& out, const Point& p) {
return out << "{ " << p.x << "; " << p.y << " }";
}
};
struct Circle {
double radius;
Point position;
Circle() : radius(0) {}
private:
friend istream& operator>>(istream& inp, Circle& p) {
cout << "Radius: ";
inp >> p.radius;
puts("Coords of center:");
inp >> p.position;
return inp;
}
friend ostream& operator<<(ostream& out, const Circle& p) {
return out << "Coords: " << p.position << ", radius: " << p.radius;
}
};
Circle min_closest(const array<Circle, 10>& box) {
static const Point p{};
auto lambda = [p](const Circle& a, const Circle& b) {
return p.length(a.position) < p.length(b.position);
};
return *min_element(box.begin(), box.end(), lambda);
}
void show_closest(const array<Circle, 10>& box, const Circle& min) {
cout.setf(ios::fixed);
cout.precision(2);
static const Point p{};
const auto length = p.length(min.position);
cout << "Min radius: " << length << '\n';
const auto eps = 1e-14;
for (const auto& x : box) {
if (fabs(length - p.length(x.position)) < eps) {
cout << x << '\n';
}
}
}
int main() {
array<Circle, 10> box;
for (auto& x : box) cin >> x;
const auto min = min_closest(box);
show_closest(box, min);
}
Алексей Терелецков
Алексей Терелецков
61 806
Лучший ответ
Илья Рябов Помогите пожалуйста мне ещё! У меня в профиле последний вопрос