# 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?