C Program to Find Roots of a Quadratic Equation

C program to find root of a quadratic equation; Through this tutorial, you will learn how to find the root of a quadratic equation in c program.

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. It tells the nature of the roots.

  • If the discriminant is greater than 0, the roots are real and different.
  • If the discriminant is equal to 0, the roots are real and equal.
  • If the discriminant is less than 0, the roots are complex and different.

Algorithm and Programs To Find Roots of a Quadratic Equation

Use the following algorithm and program to find the roots of a quadratic equation using if else, switch case in C:

  • Algorithm to find roots of a quadratic equation
  • C Program to Find Roots of a Quadratic Equation using if else
  • C Program to Find Roots of a Quadratic Equation using switch case

Algorithm to find roots of a quadratic equation

Use the following steps to write a c program to find the roots of a quadratic equation ax2 + bx + c = 0; as follows:

  1. Start Program
  2. Read the value of a, b, c.
  3. Calculate k = b*b – 4*a*c.
  4. If (d < 0) Display “Roots are Imaginary, calculater1 = (-b +i ? k)/ 2a and r2 =(b + i? k)/ 2a. else if (d = 0) Display “Roots are Equal” and calculate r1 = r2 = (-b / 2*a) …
  5. Print r1 and r2.
  6. End Program

C Program to Find Roots of a Quadratic Equation using if else

/**
 * C program to find all roots of a quadratic equation
 */

#include <stdio.h>
#include <math.h> /* Used for sqrt() */

int main()
{
    float a, b, c;
    float root1, root2, imaginary;
    float discriminant;

    printf("Enter values of a, b, c of quadratic equation (aX^2 + bX + c): ");
    scanf("%f%f%f", &a, &b, &c);

    /* Find discriminant of the equation */
    discriminant = (b * b) - (4 * a * c);


    /* Find the nature of discriminant */
    if(discriminant > 0)
    {
        root1 = (-b + sqrt(discriminant)) / (2*a);
        root2 = (-b - sqrt(discriminant)) / (2*a);

        printf("Two distinct and real roots exists: %.2f and %.2f", root1, root2);
    }
    else if(discriminant == 0)
    {
        root1 = root2 = -b / (2 * a);

        printf("Two equal and real roots exists: %.2f and %.2f", root1, root2);
    }
    else if(discriminant < 0)
    {
        root1 = root2 = -b / (2 * a);
        imaginary = sqrt(-discriminant) / (2 * a);

        printf("Two distinct complex roots exists: %.2f + i%.2f and %.2f - i%.2f",
                root1, imaginary, root2, imaginary);
    }

    return 0;
}

The output of the above c program; as follows:

Enter values of a, b, c of quadratic equation (aX^2 + bX + c): 8 -4 -2
Two distinct and real roots exists: 0.81 and -0.31

C Program to Find Roots of a Quadratic Equation using switch case

#include <stdio.h>
#include<math.h>
int main()
{
	float a, b, c;
	float root1, root2, imaginary, discriminant;

	printf("\n Please Enter values of a, b, c of Quadratic Equation :  ");
  	scanf("%f%f%f", &a, &b, &c);

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

  	switch(discriminant > 0)
  	{
  		case 1:
  			root1 = (-b + sqrt(discriminant) / (2 * a));
  			root2 = (-b - sqrt(discriminant) / (2 * a));
			printf("\n Two Distinct Real Roots Exists: root1 = %.2f and root2 = %.2f", root1, root2);
			break;
		case 0:
			switch(discriminant < 0)
			{
				case 1: //True
					root1 = root2 = -b / (2 * a);
					imaginary = sqrt(-discriminant) / (2 * a);
					printf("\n Two Distinct Complex Roots Exists: root1 = %.2f+%.2f and root2 = %.2f-%.2f", root1, imaginary, root2, imaginary);
					break;
				case 0: // False (Discriminant = 0)
					root1 = root2 = -b / (2 * a);
					printf("\n Two Equal and Real Roots Exists: root1 = %.2f and root2 = %.2f", root1, root2);
					break;
			}
  	}

  	return 0;
}

The output of the above c program; as follows:

Please Enter values of a, b, c of Quadratic Equation :  2 3 5
Two Distinct Complex Roots Exists: root1 = -0.75+1.39 and root2 = -0.75-1.39

Recommended C Programs

AuthorDevendra Dode

Greetings, I'm Devendra Dode, a full-stack developer, entrepreneur, and the proud owner of Tutsmake.com. My passion lies in crafting informative tutorials and offering valuable tips to assist fellow developers on their coding journey. Within my content, I cover a spectrum of technologies, including PHP, Python, JavaScript, jQuery, Laravel, Livewire, CodeIgniter, Node.js, Express.js, Vue.js, Angular.js, React.js, MySQL, MongoDB, REST APIs, Windows, XAMPP, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL, and Bootstrap. Whether you're starting out or looking for advanced examples, I provide step-by-step guides and practical demonstrations to make your learning experience seamless. Let's explore the diverse realms of coding together.

Leave a Reply

Your email address will not be published. Required fields are marked *