C Program to Find Roots of Quadratic Equation

Here you will get C program to find roots of quadratic equation ax2+bx+c=0

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

int main()
{
	float root1,root2,a,b,c,d,imaginaryPart,realPart;
	printf("Quadratic Equation is ax^2+bx+c=0");
	printf("\nEnter values of a,b and c:");
	scanf("%f%f%f",&a,&b,&c);
	
	d=(b*b)-(4*a*c);
	if(d>0)
	{
		printf("\nTwo real and distinct roots");
		root1=(-b+sqrt(d))/(2*a);
		root2=(-b-sqrt(d))/(2*a);
		printf("\nRoots are %f and %f",root1,root2);
	}
	else
		if(d==0)
		{
			printf("\nTwo real and equal roots");
			root1=root2=-b/(2*a);
			printf("\nRoots are %f and %f",root1,root2);
		}
		else{
			printf("\nRoots are complex and imaginary");
			realPart = -b/(2*a);
	        imaginaryPart = sqrt(-d)/(2*a);
    	    printf("\nRoots are %.2f+%.2fi and %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart);
    	}

	return 0;			
}

 

Output

Quadratic Equation is ax^2+bx+c=0
Enter values of a,b and c:1
1
1

Roots are complex and imaginary
Roots are -0.50+0.87i and -0.50-0.87i

1 thought on “C Program to Find Roots of Quadratic Equation”

  1. Hi, I’ve a doubt in this program. When you find the value for imaginary root, why to use minus in square root (sqrt(-d))? Because the value which you get from d will already be in negative. Please make my doubt clear. I know it won’t work without negative sign but why it is like that?

Leave a Comment

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