Как определить количество корней квадратного уравнения? - C (СИ)
Формулировка задачи:
Если даны вещественные числа а,b,c, то как можно определить количество корней уравнения ax^2+bx+c=0? Если корней бесконечно, чтоб выводил infinity. Примерно понимаю как, но все-таки чего-то не хватает
Решение задачи: «Как определить количество корней квадратного уравнения?»
textual
Листинг программы
#include <iostream> #include <cmath> void getRoots(double a, double b, double c, int &n, double &x1, double &x2) { double d = b*b-4*a*c; n = (d>0?2:(d<0?0:1)); x1 = (-sqrt(d)-b)/(2*a); x2 = (d>0?(sqrt(d)-b)/(2*a):x1); } using namespace std; int main() { int n = 0; double a=1, b = 0, c = 1, x1 = 0, x2 = 0; getRoots(a, b, c, n, x1, x2); cout << "n = " << n << ", x1 = " << x1 << ", x2 = " << x2 << endl; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с математическими функциями и вводом/выводом данных
- Создается функция getRoots, принимающая на вход коэффициенты квадратного уравнения и возвращающая количество корней и сами корни
- Внутри функции происходит вычисление дискриминанта (d) и определение количества корней (n) в зависимости от его значения
- При наличии двух корней, их значения (x1 и x2) вычисляются с использованием формулы квадратного уравнения
- При наличии одного корня, в качестве второго корня используется значение x1
- В функции main создаются переменные для хранения количества корней, коэффициентов и самих корней
- Вызывается функция getRoots с передачей ей значений коэффициентов квадратного уравнения
- Результат работы функции выводится на экран с помощью функции cout
- Значения переменных n, x1 и x2 после вызова функции getRoots сохраняются в переменной main, и они выводятся на экран
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д