Функция вычисления корней квадратного уравнения - C (СИ)
Формулировка задачи:
Вот выполняю задание: "Написать функцию вычисления корней уравнения a*x*x + b*x + c = 0. Значение
квадратного корня от x возвращает функция стандартной библиотеки (необходимо включить
в программу math.h)
double sqrt(double x)"
Программа работает, но считает коряво, точнее вообще не правильно.
как я понял принтф в функции не работает? тогда как вывеси два и более значений? Помогите исправить ошибки, прочитал несколько статей но конкретных ответов не нашел.
Листинг программы
- double qvadr(double a, double b, double c);
- double qvadr(double a, double b, double c){ double d,x1,x2;
- d=b*b-4*a*c;
- if (d>0) {x1=(-b+sqrt(d))/(2*a);printf("%f",x1);
- x2=(-b-sqrt(d))/(2*a);printf("%f",x2);
- }
- if (d=0) {x1=(-b+sqrt(d))/(2*a);printf("%f",x1); }
- if (d<0) printf("net kornei"); return x1;
- }
- int main()
- { double a,b,c;
- scanf("%f%f%f",&a,&b,&c);
- printf("%d",qvadr(a,b,c));
- system("PAUSE");
- return 0;
- }
Решение задачи: «Функция вычисления корней квадратного уравнения»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- void qvadr(float a, float b, float c){ float d,x1,x2;
- d=b*b-4*a*c;
- if (d>0) {x1=(-b+sqrt(d))/(2*a);printf("%f",x1);
- x2=(-b-sqrt(d))/(2*a);printf("%f",x2);
- }
- if (d=0) {x1=(-b+sqrt(d))/(2*a);printf("%f",x1); }
- if (d<0) printf("net kornei");
- }
- int main()
- { float a,b,c;
- scanf("%f%f%f",&a,&b,&c);
- qvadr(a,b,c);
- system("PAUSE");
- return 0;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с математическими функциями и вводом/выводом данных
- Определяем функцию qvadr, которая принимает три аргумента типа float - a, b и c. Эти переменные соответствуют коэффициентам квадратного уравнения ax^2 + bx + c = 0
- Внутри функции вычисляем дискриминант уравнения по формуле d = b^2 - 4ac
- Используем условный оператор if для проверки значения переменной d. Если d больше нуля, то уравнение имеет два корня и мы вычисляем их значения, используя формулы x1 = (-b + sqrt(d))/(2a) и x2 = (-b - sqrt(d))/(2a). Затем выводим значения корней на экран
- Если d равно нулю, то уравнение имеет один корень и мы выводим его значение, используя формулу x1 = (-b + sqrt(d))/(2a). В этом случае второй корень не вычисляем, так как он равен первому корню
- Если d меньше нуля, то уравнение не имеет действительных корней и мы выводим на экран сообщение
net kornei
- В функции main() объявляем три переменные типа float a, b и c и считываем их значения с помощью функции scanf
- Вызываем функцию qvadr, передавая ей значения переменных a, b и c
- Выводим на экран сообщение
Press any key to continue...
с помощью функции system(PAUSE
) - Возвращаем 0 из функции main(), что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д