Ошибка при решении квадратного уравнения - 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^2
b
- коэффициент приx
c
- свободный член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():
- Это означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д