Ошибка в ветвлении if else - C (СИ)
Формулировка задачи:
Здравствуйте , не судите строго с компилятором недавно познакомился
может кто подсказать , в чем напортачил ?
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{
double a, b, c, x, x1, x2;
printf("Input a: ");
scanf("%1f", &a);
printf("Input b: ");
scanf("%1f", &b);
printf("Input c: ");
scanf("%.1f", &c);
double discr=(b*b-4*a*c);
if(discr>0)
{
x1=(-b+sqrt(discr))/(2*a);
x2=(-b-sqrt(discr))/(2*a);
printf("%1f - %1f", x1, x2);
}else
{
if(discr==0);
x=(-b/(2*a));
printf("x: %.2lf\n", x);
}if(discr<0){
printf("No real roots");
}
_getch();
return 0;
}Решение задачи: «Ошибка в ветвлении if else»
textual
Листинг программы
if(discr==0){
x=(-b/(2*a));
}
Объяснение кода листинга программы
- Проверка условия
discr==0- здесьdiscrэто дискриминант квадратного уравнения, а0- это его значение при котором ветвление if выполняется. - Если условие истинно (дискриминант равен нулю), то выполняется следующий код:
a. Вычисление значения
xпо формулеx=(-b/(2*a))- здесьbиaэто коэффициенты квадратного уравнения, аx- это его решение. - Если условие ложно (дискриминант не равен нулю), то выполняется код после ветвления else.