Ошибка при решении квадратного уравнения - C (СИ)
Формулировка задачи:
Решаю задачу(Решить квадратное уравнение),не выдает результат, в чем ошибка?
#include <stdio.h>
#include <math.h>
#include <conio.h>
float a,b,c,d;
main()
{
printf("Vvedite a,b,c:\n");
scanf("%f %f %f",&a,&b,&c);
d=(b*b-4*a*c);
printf("%f\n",d);
if(d>0) printf("%f %f \n",((-b+sqrt(d))/(2*a)),((-b-sqrt(d))/(2*a)));
if(d=0) printf("%f \n",((-b)/(2*a)));
if(d<0) printf("Net kornei\n");
getch();
return 0;
}Решение задачи: «Ошибка при решении квадратного уравнения»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float equation(int a,int b, int c, int x, int X, int D)// создаем функцию
{
// a*x*x+b*x+c=0;
D=b*b-4*a*c;
if(D>0)
{
x=(sqrt(D)-b)/2*a;
printf("x=%f\n", x);
X=(sqrt(D)-b)/2*a;
printf("x=%f\n", X);
/*printf("(x=-b+sqrt:%.2d)/2*a\n", sqrt(D));
printf("(x=-b-sqrt:%.2d)/2*a\n", sqrt(D));*/
}
if(D==0)
{
printf("x="-b/2*a);
}
if(D=0)
printf("Net resheniy");
return 0;
}
int a,b,c,x,X,D;
int main()
{
printf("Enter a\n ");
scanf("%d",&a);
printf("Enter b\n ");
scanf("%d",&b);
printf("Enter c\n ");
scanf("%d",&c);
printf("equation: \n", equation(a,b,c,x,X,D));
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
stdio.hдля работы с консольюstdlib.hдля работы с операциями ввода/выводаmath.hдля работы с математическими функциями
- Создаем функцию
equationс шестью аргументами типаint:a- коэффициент приx^2b- коэффициент приxc- свободный членx- переменная, в которую будет присвоен результат решения уравненияX- зеркальный параметрx, используемый для проверкиD- дискриминант
- Внутри функции:
- Вычисляем дискриминант по формуле
D=b*b-4*a*c - Проверяем значение
D:- Если
D>0, то уравнение имеет два корня - Если
D=0, то уравнение имеет один корень (корни равны) - Если
D<0, то уравнение не имеет действительных корней
- Если
- Вычисляем дискриминант по формуле
- Если D>0:
- Вычисляем корни по формулам
x=(sqrt(D)-b)/2*aиX=(sqrt(D)-b)/2*a - Выводим значения корней на экран
- Вычисляем корни по формулам
- Если D=0:
- Выводим значение корня на экран
- Если D<0:
- Выводим сообщение о том, что уравнение не имеет действительных корней
- В функции main():
- Запрашиваем у пользователя значения
a,bиc - Вызываем функцию
equationс переданными значениями - Выводим результат работы функции на экран
- Запрашиваем у пользователя значения
- Возвращаем 0 из функции main():
- Это означает успешный конец работы программы