Advertisement
deced

Untitled

Oct 3rd, 2020
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. void getValue(string message, int *value)
  7. {
  8.     string inputLine = "";
  9.     cout << message << "\n";
  10.     getline(cin, inputLine);
  11.     try
  12.     {
  13.         *value = stoi(inputLine);
  14.     }
  15.     catch (...)
  16.     {
  17.         cout << "Ожидалось число\n";
  18.         getValue(message, value);
  19.     }
  20.     if (*value < 1)
  21.     {
  22.         cout << "Число должно быть больше нуля\n";
  23.         getValue(message, value);
  24.     }
  25. }
  26. void getTriangleRadius(double *value)
  27. {
  28.     cout << "Введите длины сторон треугольника\n";
  29.     int a, b, c;
  30.     double p;
  31.     getValue("Введите длину стороны a ", &a);
  32.     getValue("Введите длину стороны b ", &b);
  33.     getValue("Введите длину стороны c ", &c);
  34.     p = (a + b + c) / 2.0;
  35.     if (p - a > 0 && p - b > 0 && p - c > 0)
  36.     {
  37.         *value = sqrt(((p - a)*(p - b)*(p - c)) / p);
  38.     }
  39.     else
  40.     {
  41.         cout << "Такого треугольника не существует\n";
  42.         getTriangleRadius(value);
  43.     }
  44. }
  45. int main()
  46. {
  47.     setlocale(LC_ALL, "Russian");
  48.     int triangleCount;
  49.     double r = 0;
  50.     double minRadius = 0;
  51.     getValue("Введите количество треугольников ", &triangleCount);
  52.     for (int i = 0; i < triangleCount; i++)
  53.     {
  54.         getTriangleRadius(&r);
  55.         if (r < minRadius || minRadius == 0)
  56.         {
  57.             minRadius = r;
  58.         }
  59.     }
  60.     printf("Минимальный радиус равен %5.2f", minRadius);
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement