C/C++

Решение задачи на языке С++

Дан признак геометрической фигуры на плоскости: к — круг, п — прямоугольник, т — треугольник. Вывести на экран периметр и площадь заданной фигуры (данные, необходимые для расчетов, запросить у пользователя).
#include <cmath>
#include <iostream>
using namespace std;
int main() {
system("chcp 1251 > nul");
while (true) {
cout << "Признак: ";
char sign = cin.get();
if (sign == 'к') {
const auto pi = 3.1415926535897932;
cout << "Введите радиус окружности: ";
double radius;
cin >> radius;
auto perimeter = 2 * pi * radius;
auto area = pi * pow(radius, 2);
cout << "Периметр окружности: " << perimeter << '\n';
cout << "Площадь круга: " << area << '\n';
} else if (sign == 'п') {
cout << "Введите длину прямоугольника: ";
double length;
cin >> length;
cout << "Введите ширину прямоугольника: ";
double width;
cin >> width;
auto perimeter = 2 * (width + length);
auto area = width * length;
cout << "Периметр прямоугольника: " << perimeter << '\n';
cout << "Площадь прямоугольника: " << area << '\n';
} else if (sign == 'т') {
cout << "Введите стороны треугольника: ";
double a, b, c;
cin >> a >> b >> c;
auto perimeter = a + b + c;
auto p = perimeter / 2;
auto arg = p * (p - a) * (p - b) * (p - c);
if (arg <= 0) puts("Треугольник не существует!");
else {
auto area = sqrt(arg);
cout << "Периметр треугольника: " << perimeter << '\n';
cout << "Площадь треугольника: " << area << '\n';
}
} else {
puts("Акела, промахнулся!");
}
cin.ignore(cin.rdbuf()->in_avail());
}
system("pause > nul");
}
СТ
Сергей Толстихин
95 216
Лучший ответ