Как определить количество корней квадратного уравнения? - 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;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы для работы с математическими функциями и вводом/выводом данных
  2. Создается функция getRoots, принимающая на вход коэффициенты квадратного уравнения и возвращающая количество корней и сами корни
  3. Внутри функции происходит вычисление дискриминанта (d) и определение количества корней (n) в зависимости от его значения
  4. При наличии двух корней, их значения (x1 и x2) вычисляются с использованием формулы квадратного уравнения
  5. При наличии одного корня, в качестве второго корня используется значение x1
  6. В функции main создаются переменные для хранения количества корней, коэффициентов и самих корней
  7. Вызывается функция getRoots с передачей ей значений коэффициентов квадратного уравнения
  8. Результат работы функции выводится на экран с помощью функции cout
  9. Значения переменных n, x1 и x2 после вызова функции getRoots сохраняются в переменной main, и они выводятся на экран

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы