Skip to content
Home ยป C++ Program to Solve Quadratic Equations

C++ Program to Solve Quadratic Equations

    The C++ program to solve quadratic equations in standard form is a simple program based on the quadratic formula. Given the coefficients as input, it will solve the equation and output the roots of the equation.

    This is a simple program is intended for intermediate level C++ programmers.

    The program is compiled using Dev-C++ 4.9.9.2 version installed on a Windows 7 64-bit PC. You may try other standard C compilers and the program will still work if you use the correct C libraries.

    Problem Definition

    In this program, we solve the quadratic equation using the formula.

    \begin{aligned}
    &x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\\\\
    &When\\\\
    &ax^2 + bx + c = 0
    \end{aligned}

    Where a, b and c are coefficient of the equation ax^2 + bx + c = 0 which is in the standard form.

    How to compute quadratic equation?

    The steps to compute the quadratic equation is given below.

    Step1:

    The program requests the input coefficient values a, b and c. When the user input the values, it will compute two terms t1 and t3 and an intermediate term t2.

    t1 = -1 * b

    Step2:

    The function term2 () is called in step 2 and returned value of function is assigned to t2. The term2 () function receives the coefficient values โ€“ a, b, c and compute the value for t2.

    t2 = term2(a, b, c);

    The term () function returns and assign value of b<sup>2</sup> โ€“ 4ac to t2 and it is useful in understanding the root of the quadratic equation.

    For example,

    If (t2 < 0), then the roots are not real

    If (t2 == 0) then, there is exactly one root value.

    If (t2 > 0) then there are two root values.

    The above condition is checked and printed with output values. Now we need to compute the roots and display the output values.

    Step3:

    A term t3 is assigned value after taking square root of t2.

    t3 = sqrt (t2);

    Step4:

    Finally, we have t1 and t3 to compute two roots of a quadratic equation.

    root1 = (t1 + t3)/ 2 * a;
    root2 = (t1 + t3)/ 2 * a;

    Then root1 and root are calculated and printed immediately.

    Flowchart – Program for Quadratic Equations

    To understand flow of logic of this program, see the flowchart below.

    Flowchart - C++ Program for solving quadratic equations
    Flowchart – C++ Program for solving quadratic equations

    Program Code – Program for Quadratic Equation

    /* C Program to solve a quadratic equation - Ax^2 + Bx + C = 0 using the formula
    X1= -b + sqrt (b^2 โ€“ 4 * a * c)/ (2 * a) 
    and X2 = -b - sqrt (b^2 โ€“ 4 * a * c)/ (2* a) */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream.h>
    #include <cmath.h>
    
    using namespace std;
    int main (){
    
       /* function quadratic */    
       int term2 (int a, int b, int c);
    
       /* coefficients a, b, c */    
       int a, b, c;    
       float root1, root2, t1, t2, t3;    
       root1 = root2 = 0.0;    
       cout << "\n\n\n\n\n\n";    
       cout << "\t\t\t\tPlease enter coefficients:" << endl;
       cout << "\t\t\t\tA="; cin >> a;    
       cout << "\t\t\t\tB="; cin >> b;    
       cout << "\t\t\t\tC="; cin >> c;    
       cout << "\t\t\t\tA=" << " " << a;    
       cout << "\tB=" << " " << b;    
       cout << "\tC=" << " " << c << endl;    
       cout << endl;    
    
       //Compute roots
       t1 = -1 * b;    
       t2 = term2 (a, b, c);    
       t3 = sqrt (t2);    
       root1 = (t1 + t3)/ (2 * a);    
       root2 = (t1 - t3)/ (2 * a);    
     
       //Display roots
       cout << "\t\t\t\tRoot-1 =" << " " << root1 << endl;    
       cout << "\t\t\t\tRoot-2 =" << " " << root2 << endl;    
       getch ();    
       return EXIT_SUCCESS;
    }
    
    
    int term2 (int x, int y, int z){    
    int p = y * y;    
    int q = 4 * x * z;    
    int r = p - q;    
    if (r < 0)    
       cout << "\t\t\t\tThere is no real root." << endl;    
    if (r == 0)    
       cout << "\t\t\t\tThere is only one real root." << endl; 
    if (r > 0)    
       cout << "\t\t\t\tThere are two real roots." << endl;    
       return r;
    }

    Output

    The output of the above program is given below.

                        Please enter coefficients:
                        A=1
                        B=22
                        C=44        
                        A= 1      B= 22    C= 44
                        
                        There are two real roots:
                        Root-1 = -2.22504
                        Root-2 = -19.775