Skip to main content

C Program to Find all Roots of a Quadratic Equation

C Program to Find all Roots of a Quadratic Equation

This program accepts coefficients of a quadratic equation from the user and displays the roots (both real and complex roots depending upon the discriminant ).
 
Quadratic equation graph
To understand this example, you should have the knowledge of following C programming topics:
The standard form of a quadratic equation is:
ax2 + bx + c = 0, where
a, b and c are real numbers and
a ≠ 0
The term b2-4ac is known as the discriminant of a quadratic equation. The discriminant tells the nature of the roots.
  • If discriminant is greater than 0, the roots are real and different.
  • If discriminant is equal to 0, the roots are real and equal.
  • If discriminant is less than 0, the roots are complex and different.
Discriminant of quadratic equation

Example: Program to Find Roots of a Quadratic Equation


#include <stdio.h>
#include <math.h>

int main()
{
    double a, b, c, discriminant, root1, root2, realPart, imaginaryPart;

    printf("Enter coefficients a, b and c: ");
    scanf("%lf %lf %lf",&a, &b, &c);

    discriminant = b*b-4*a*c;

    // condition for real and different roots
    if (discriminant > 0)
    {
    // sqrt() function returns square root
        root1 = (-b+sqrt(discriminant))/(2*a);
        root2 = (-b-sqrt(discriminant))/(2*a);

        printf("root1 = %.2lf and root2 = %.2lf",root1 , root2);
    }

    //condition for real and equal roots
    else if (discriminant == 0)
    {
        root1 = root2 = -b/(2*a);

        printf("root1 = root2 = %.2lf;", root1);
    }

    // if roots are not real 
    else
    {
        realPart = -b/(2*a);
        imaginaryPart = sqrt(-discriminant)/(2*a);
        printf("root1 = %.2lf+%.2lfi and root2 = %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart);
    }

    return 0;
}   
Output 
Enter coefficients a, b and c: 2.3
4
5.6
Roots are: -0.87+1.30i and -0.87-1.30i
In this program, library function sqrt() is used to find the square root of a number.

Comments

Popular posts from this blog

C Program to Find ASCII Value of a Character

C Program to Find ASCII Value of a Character In C programming, a character variable holds ASCII value (an integer number between 0 an 127) rather than character itself. You will learn how to find ASCII value of a character in this program.   To understand this example, you should have the knowledge of following C programming topics: C Programming Data Types C Programming Constants and Variables C Input Output (I/O) A character variable holds ASCII value (an integer number between 0 and 127) rather than that character itself in C programming. That value is known as ASCII value. For example , ASCII value of 'A' is 65. What this means is that, if you assign 'A' to a character variable, 65 is stored in that variable rather than 'A' itself. Program to Print ASCII Value #include <stdio.h> int main () { char c ; printf ( "Enter a character: " ); // Re...

C Program to Demonstrate the Working of Keyword long

C Program to Demonstrate the Working of Keyword long The long is a size modifier, indicated by keyword long, that may increase the size of a variable during declaration. This program will demonstrate the working of long keyword.   To understand this example, you should have the knowledge of following C programming topics: C Programming Data Types C Programming Constants and Variables C Input Output (I/O) Example: Program to Demonstrate the Working of long #include <stdio.h> int main () { int a ; long b ; long long c ; double e ; long double f ; printf ( "Size of int = %ld bytes \n" , sizeof ( a )); printf ( "Size of long = %ld bytes\n" , sizeof ( b )); printf ( "Size of long long = %ld bytes\n" , sizeof ( c )); printf ( "Size of double = %ld bytes\n" , sizeof ( e )); printf ( "Size of long doub...