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 Check Whether a Number is Positive or Negative

C Program to Check Whether a Number is Positive or Negative In this example, you will learn to check whether a number (entered by the user) is negative or positive.    To understand this example, you should have the knowledge of following C programming topics: C Programming Operators C if...else Statement This program takes a number from the user and checks whether that number is either positive or negative or zero. Example #1: Check if a Number is Positive or Negative Using if...else #include <stdio.h> int main () { double number ; printf ( "Enter a number: " ); scanf ( "%lf" , & number ); if ( number <= 0.0 ) { if ( number == 0.0 ) printf ( "You entered 0." ); else printf ( "You entered a negative number." ); } else printf ( "You entered a positive num

C Program to Multiply two Floating Point Numbers

C Program to Multiply two Floating Point Numbers In this program, user is asked to enter two numbers (floating point numbers). Then, the product of those two numbers is stored in a variable and displayed on the screen.   To understand this example, you should have the knowledge of following C programming topics: C Programming Constants and Variables C Programming Data Types C Input Output (I/O) C Programming Operators Program to Multiply Two Numbers #include <stdio.h> int main () { double firstNumber , secondNumber , product ; printf ( "Enter two numbers: " ); // Stores two floating point numbers in variable firstNumber and secondNumber respectively scanf ( "%lf %lf" , & firstNumber , & secondNumber ); // Performs multiplication and stores the result in variable productOfTwoNumbers product = firstNumber * secondNumber ; //

C Program to Check Whether a Number is Palindrome or Not

C Program to Check Whether a Number is Palindrome or Not This program reverses an integer (entered by the user) using while loop. Then, if statement is used to check whether the reversed number is equal to the original number or not.   To understand this example, you should have the knowledge of following C programming topics: C Programming Operators C if...else Statement C Programming while and do...while Loop An integer is a palindrome if the reverse of that number is equal to the original number. Example: Program to Check Palindrome #include <stdio.h> int main () { int n , reversedInteger = 0 , remainder , originalInteger ; printf ( "Enter an integer: " ); scanf ( "%d" , & n ); originalInteger = n ; // reversed integer is stored in variable while ( n != 0 ) { remainder = n % 10 ; reversedInteger = reversed