Advertisement
maksim32

mail_question212233324 (Решение квадратного уравнения с заданной точностью double)

Dec 24th, 2018 (edited)
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. const double eps = 1e-9;
  6.  
  7. inline int fcompare(double a, double b)
  8. {
  9.     return fabs(a - b) < eps ? 0 : a < b ? -1 : 1;
  10. }
  11.  
  12. int main()
  13. {
  14.     double a, b, c;
  15.     system("chcp 1251 > nul");
  16.     while (1)
  17.     {
  18.         printf("Введите коэффициенты квадратного уравнения a, b и c:\n");
  19.         scanf("%lf%lf%lf", &a, &b, &c);
  20.         if (fcompare(a, 0.0)) // a != 0.0
  21.         {
  22.             int res_cmp;
  23.             double d;
  24.             d = b*b - 4.0*a*c;
  25.             res_cmp = fcompare(d, 0.0);
  26.             if (res_cmp == 0) // d == 0
  27.             {
  28.                 printf("x = %lf\n", -b / (a + a));
  29.             }
  30.             else if (res_cmp > 0) // d > 0.0
  31.             {
  32.                 printf("x1 = %lf\n", -(b + sqrt(d)) / (a + a));
  33.                 printf("x2 = %lf\n", -(b - sqrt(d)) / (a + a));
  34.             }
  35.             else // d < 0.0
  36.             {
  37.                 printf("Корней на множестве действительных чисел нет.\n");
  38.             }
  39.         }
  40.         printf("\n");
  41.     }
  42.     system("pause");
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement