Home »
C solved programs »
C basic programs
C program to find the roots of a quadratic equation
Here, we are going to learn how to find the roots of a quadratic equation using C program?
Submitted by Nidhi, on August 03, 2021
Problem statement
Read the value of a, b, and c, and calculate the roots of a quadratic equation.
C program to find the roots of a quadratic equation
The source code to roots of a quadratic equation is given below. The given program is compiled and executed using GCC compile on UBUNTU 18.04 OS successfully.
//C program to roots of a quadratic equation
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void calculateRoot(float a, float b, float c)
{
float rootA = 0;
float rootB = 0;
float realp = 0;
float imagp = 0;
float disc = 0;
if (a == 0 || b == 0 || c == 0) {
printf("Error: Unable to determine roots\n");
return;
}
else {
disc = b * b - 4.0 * a * c;
if (disc < 0) {
printf("Imaginary Roots\n");
realp = -b / (2.0 * a);
imagp = sqrt(abs(disc)) / (2.0 * a);
printf("Root1 = %f +i %f\n", realp, imagp);
printf("Root2 = %f -i %f\n", realp, imagp);
}
else if (disc > 0) {
printf("Roots are real and distinct \n");
rootA = (-b + sqrt(disc)) / (2.0 * a);
rootB = (-b - sqrt(disc)) / (2.0 * a);
printf("Root1 = %f \n", rootA);
printf("Root2 = %f \n", rootB);
}
else if (disc == 0) {
printf("Roots are real and equal\n");
rootA = -b / (2.0 * a);
rootB = rootA;
printf("Root1 = %f\n", rootA);
printf("Root2 = %f\n", rootB);
}
}
}
int main()
{
float a = 0;
float b = 0;
float c = 0;
printf("Enter the values of a: ");
scanf("%f", &a);
printf("Enter the values of b: ");
scanf("%f", &b);
printf("Enter the values of c: ");
scanf("%f", &c);
calculateRoot(a, b, c);
return 0;
}
Output
RUN 1:
Enter the values of a: 20
Enter the values of b: 30
Enter the values of c: 40
Imaginary Roots
Root1 = -0.750000 +i 1.198958
Root2 = -0.750000 -i 1.198958
RUN 2:
Enter the values of a: 1.2
Enter the values of b: 2.3
Enter the values of c: 3.4
Imaginary Roots
Root1 = -0.958333 +i 1.381927
Root2 = -0.958333 -i 1.381927
RUN 3:
Enter the values of a: 0
Enter the values of b: 0
Enter the values of c: 1
Error: Unable to determine roots
Explanation
In the above program, we created two functions calculateRoot() and main(). The calculateRoot() function is used to find-out the roots of a Quadratic Equation.
In the main() functiom, we read three integer numbers a, b, c from the user and called the calculateRoot() function to find-out the roots of a Quadratic Equation and printed the result on the console screen.
C Basic Programs »