Вывод дробных корней квадратного уравнения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не выводит дробные числа x1 , x2. На примере этого уравнения 3x^2+7x+2=0 . C целыми числами работает нормально . Подскажите пожалуйста в чем здесь ошибка.
Листинг программы
  1. #include "stdio.h"
  2. #include <math.h>
  3. #include <conio.h>
  4. int main()
  5. {
  6. float a=0,b=0,c=0,x1,x2,x;
  7. float d=0,f;
  8. printf("Nahogdenie kornej kvadratnogo uravneniy ");
  9. printf("\nVvedide znachenie a : ");
  10. scanf("%f",&a);
  11. printf("Vvedide znachenie b : ");
  12. scanf("%f",&b);
  13. printf("Vvedide znachenie c : ");
  14. scanf("%f",&c);
  15. d=b*b-4*a*c;
  16. printf("D = %f", d);
  17. f=sqrt(d);
  18. if (d>0){
  19. x1=(-b+f)/2*a;
  20. x2=(-b-f)/2*a;
  21. printf("\nKvadratny koren x1 = %f ",x1);
  22. printf("\nKvadratny koren x2 = %f ",x2);
  23. getchar();
  24. }
  25. else if (d==0) {
  26. x=(-b+f)/2*a;
  27. printf("\nKvadratny koren x = %f", x);
  28. getchar();
  29. }
  30. else {
  31. printf("\nNet kornej");
  32. getchar();
  33. }
  34. getchar();
  35. return 0;
  36. }

Решение задачи: «Вывод дробных корней квадратного уравнения»

textual
Листинг программы
  1.  //f=sqrt(d);
  2.  
  3.   if (d>0)
  4.   {
  5.      f=sqrt(d);
  6.      x1=(-b+f)/2*a;
  7.      x2=(-b-f)/2*a;
  8.      printf("\nKvadratny koren x1 = %f ",x1);
  9.      printf("\nKvadratny koren x2 = %f ",x2);
  10.      getchar();
  11.   }
  12. else if ((d>0) && (d<=1E-8))
  13.   {
  14.     x=(-b)/2*a;
  15.     printf("\nKvadratny koren x = %f", x);
  16.     getchar();
  17.   }
  18. else
  19. {
  20.     printf("\nNet kornej");
  21.     getchar();
  22. }

Объяснение кода листинга программы

  1. Сначала проверяется условие d > 0. Если оно истинно, то выполняется блок кода внутри этого условия.
  2. Внутри блока кода вычисляется f = sqrt(d).
  3. Затем вычисляются x1 = (-b + f) / (2 * a) и x2 = (-b - f) / (2 * a).
  4. Выводятся значения x1 и x2 с помощью функции printf.
  5. Если условие d > 0 не выполняется, то проверяется условие d > 0 && d <= 1E-8.
  6. Если это условие истинно, то вычисляется x = (-b) / (2 * a) и выводится значение x с помощью функции printf.
  7. Если ни одно из условий не выполняется, то выводится сообщение Net kornej с помощью функции printf.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы