Вывод дробных корней квадратного уравнения - C (СИ)
Формулировка задачи:
Не выводит дробные числа x1 , x2. На примере этого уравнения 3x^2+7x+2=0 . C целыми числами работает нормально . Подскажите пожалуйста в чем здесь ошибка.
Листинг программы
- #include "stdio.h"
- #include <math.h>
- #include <conio.h>
- int main()
- {
- float a=0,b=0,c=0,x1,x2,x;
- float d=0,f;
- printf("Nahogdenie kornej kvadratnogo uravneniy ");
- printf("\nVvedide znachenie a : ");
- scanf("%f",&a);
- printf("Vvedide znachenie b : ");
- scanf("%f",&b);
- printf("Vvedide znachenie c : ");
- scanf("%f",&c);
- d=b*b-4*a*c;
- printf("D = %f", d);
- f=sqrt(d);
- if (d>0){
- x1=(-b+f)/2*a;
- x2=(-b-f)/2*a;
- printf("\nKvadratny koren x1 = %f ",x1);
- printf("\nKvadratny koren x2 = %f ",x2);
- getchar();
- }
- else if (d==0) {
- x=(-b+f)/2*a;
- printf("\nKvadratny koren x = %f", x);
- getchar();
- }
- else {
- printf("\nNet kornej");
- getchar();
- }
- getchar();
- return 0;
- }
Решение задачи: «Вывод дробных корней квадратного уравнения»
textual
Листинг программы
- //f=sqrt(d);
- if (d>0)
- {
- f=sqrt(d);
- x1=(-b+f)/2*a;
- x2=(-b-f)/2*a;
- printf("\nKvadratny koren x1 = %f ",x1);
- printf("\nKvadratny koren x2 = %f ",x2);
- getchar();
- }
- else if ((d>0) && (d<=1E-8))
- {
- x=(-b)/2*a;
- printf("\nKvadratny koren x = %f", x);
- getchar();
- }
- else
- {
- printf("\nNet kornej");
- getchar();
- }
Объяснение кода листинга программы
- Сначала проверяется условие
d > 0
. Если оно истинно, то выполняется блок кода внутри этого условия. - Внутри блока кода вычисляется
f = sqrt(d)
. - Затем вычисляются
x1 = (-b + f) / (2 * a)
иx2 = (-b - f) / (2 * a)
. - Выводятся значения
x1
иx2
с помощью функцииprintf
. - Если условие
d > 0
не выполняется, то проверяется условиеd > 0 && d <= 1E-8
. - Если это условие истинно, то вычисляется
x = (-b) / (2 * a)
и выводится значениеx
с помощью функцииprintf
. - Если ни одно из условий не выполняется, то выводится сообщение
Net kornej
с помощью функцииprintf
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д