Основы программирования С++
Прошу умных людей помочь
Определить комбинированный (структурный) тип, описывающий
окружность и состоящий из двух полей: «радиус» и «центр». Поле «центр» в свою очередь состоит еще из двух полей: «координата X» и «координата Y». Ввести информацию по 10 окружностям. Вывести радиус окружности, чей центр самый удаленный от оси OY(оси ординат). Затем вывести информацию, отсортированную по возрастанию радиуса окружности (рационально переставлять все поля структуры разом ).
Ответы
#include <iostream>
#include <cmath>
#include <algorithm>
struct Point {
int x;
int y;
};
struct Circle {
double radius;
Point center;
};
bool compareRadius(Circle a, Circle b) {
return a.radius < b.radius;
}
int main() {
const int n = 10;
Circle circles[n];
for (int i = 0; i < n; i++) {
std::cout << "Enter information for circle " << i + 1 << ":\n";
std::cout << "Enter the radius: ";
std::cin >> circles[i].radius;
std::cout << "Enter the center (x y): ";
std::cin >> circles[i].center.x >> circles[i].center.y;
}
double maxDistance = 0;
Circle farthestCircle;
for (int i = 0; i < n; i++) {
double distance = std::abs(circles[i].center.y);
if (distance > maxDistance) {
maxDistance = distance;
farthestCircle = circles[i];
}
}
std::cout << "The radius of the circle farthest from the OY axis: " << farthestCircle.radius << std::endl;
std::sort(circles, circles + n, compareRadius);
std::cout << "Circles sorted by radius:\n";
for (int i = 0; i < n; i++) {
std::cout << "Circle " << i + 1 << ": radius=" << circles[i].radius << " center=(" << circles[i].center.x << ", " << circles[i].center.y << ")\n";
}
return 0;
}