Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- void GetValue(string message, int *value)
- {
- string inputLine = "";
- cout << message << "\n";
- getline(cin, inputLine);
- try
- {
- *value = stoi(inputLine);
- }
- catch (...)
- {
- cout << "Ожидалось число\n";
- GetValue(message, value);
- }
- if (*value < 1)
- {
- cout << "Число должно быть больше нуля\n";
- GetValue(message, value);
- }
- }
- void GetTriangleRadius(double *value)
- {
- cout << "Введите длины сторон треугольника\n";
- int a, b, c;
- double p;
- GetValue("Введите длину стороны a ", &a);
- GetValue("Введите длину стороны b ", &b);
- GetValue("Введите длину стороны c ", &c);
- p = (a + b + c) / 2.0;
- if (p - a > 0 && p - b > 0 && p - c > 0)
- {
- *value = sqrt(((p - a)*(p - b)*(p - c)) / p);
- }
- else
- {
- cout << "Такого треугольника не существует\n";
- GetTriangleRadius(value);
- }
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int triangleCount;
- double r = 0;
- double minRadius = 0;
- GetValue("Введите количество треугольников ", &triangleCount);
- for (int i = 0; i < triangleCount; i++)
- {
- GetTriangleRadius(&r);
- if (r < minRadius || minRadius == 0)
- {
- minRadius = r;
- }
- }
- printf("Минимальный радиус равен %5.2f", minRadius);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement