Сформировать массив из элементов структурного типа.Ввести данные для десяти элементов массива. Вывести массив на экран
(Определить структурный тип, описывающий окружность и состоящий из трех полей: радиус, координата центра X, координата центра Y. Вывести координаты центра окружности (окружностей), расположенной ближе всех к началу координат.)
Для вывода массива структур на экран и поиска элементов в массиве написать отдельные функции.
C/C++
Структура и массив структуры С++ Помогите пожалуйста
#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);
}
#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);
}
Илья Рябов
Помогите пожалуйста мне ещё! У меня в профиле последний вопрос
Похожие вопросы
- C++ | Структуры и массивы структур. Помогите пожалуйста!
- C++ | Структуры и массивы структур. Помогите пожалуйста!
- Такая лаба мне попалась.. Не шарю в структурах, кому не сложно помогите пожалуйста
- Помогите пожалуйста со структурами. Нужно перебрать свойство структуры.
- С++. Структуры(struct). Помогите написать программу
- Помогите пожалуйста с Массивами .В языке С .Заполнил 2-мерный массив N и M случайными числами дальше не понимаю.
- Помогите пожалуйста - создать 4 массива на c++
- Помогите, пожалуйста решить на C++, используя многомерные статические массивы
- Помогите, пожалуйста, написать программу на C++ (массивы)
- С++.Помогите пожалуйста! Написать программу по обработке динамических массивов. Размеры массивов вводить с клавиатуры.