# Write a C program to find the `roots of a quadratic equation`.

#### Description:

```Nature of roots of quadratic equation can be known from the quadrant = b2-4ac
If b2-4ac >0 then roots are real and unequal
If b2-4ac =0 then roots are real and equal
If b2-4ac <0 then roots are imaginary```

#### Algorithm:

```Step 1: Start
Step 2: Read A, B, C as integer
Step 3: Declare disc, deno, x1, x2 as float
Step 4: Assign disc = (B * B) - (4 * A * C)
Step 5: Assign deno = 2 * A;
Step 6: if( disc > 0 )
begin
Print “THE ROOTS ARE REAL ROOTS”
Assign x1 ← (-B / deno) + (sqrt(disc) / deno)
Assign x2 ← (-B / deno) - (sqrt(disc) / deno)
Print   x1, x2
end
else if(disc = 0)
begin
Print “ THE ROOTS ARE REPEATED ROOTS"
Assign x1 ← -B / deno
Print  x1
end
else  Print “THE ROOTS ARE IMAGINARY ROOTS”
Step7: Stop```

#### Program:

```#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float  a, b, c, d, root1, root2;
clrscr();
printf("Enter the values of a, b, c\n");
scanf("%f%f%f", &a, &b, &c);
if(a == 0 || b == 0 || c == 0)
{
printf("Error: Roots can't be determined");
}
else
{
d = (b * b) - (4.0 * a * c);
if(d > 0.00)
{
printf("Roots are real and distinct \n");
root1 = -b + sqrt(d) / (2.0 * a);
root2 = -b - sqrt(d) / (2.0 * a);
printf("Root1 = %f \nRoot2 = %f", root1, root2);
}
else if (d < 0.00)
{
printf("Roots are imaginary");
root1 = -b / (2.0 * a) ;
root2 = sqrt(abs(d)) / (2.0 * a);
printf("Root1 = %f  +i %f\n", root1, root2);
printf("Root2 = %f  -i %f\n", root1, root2);
}
else if (d == 0.00)
{
printf("Roots are real and equal\n");
root1 = -b / (2.0 * a);
root2 = root1;
printf("Root1 = %f\n", root1);
printf("Root2 = %f\n", root2);
}
}
getch();
}```

#### Input & Output:

```Enter the values of a, b, c
1  2  3
Roots are imaginary
Root1 = -1.000 + i
Root2 = -1.000 - i
```

#### Viva Questions:

Q: What are various types of loop statements?

Ans: While, do- while, for loop statements.

Q: What is the difference between while and do-while statements?

Ans: In while the condition will be checked first and then enter into a loop. But in do- while the statements will be executed first and then finally check the Condition.

Q: How to find the roots of qudratric equtations?

Ans: Nature of roots of quadratic equation can be known from the quadrant = b2-4ac

•  If b2-4ac >0 then roots are real and unequal
•  If b2-4ac =0 then roots are real and equal
•  If b2-4ac <0 then roots are imaginary

Q: List out the C features?

Ans: Portability,flexibility, wide acceptability etc..,

• Updated
Dec 24, 2014
• Views
112,960
You May Like