How to write a C program to find the roots of a quadratic equation?



Problem

Applying the software development method to solve any problem in C Language.

Solution

  • Find roots of a quadratic equation, ax2+bx+c.
  • There will be 2 roots for given quadratic equation.

Analysis

Input ? a,b,c values

Output ? r1, r2 values

Procedure

$r_{1}=\frac{-b+\sqrt{b^2-4ac}}{2a}$

$r_{2}=\frac{-b-\sqrt{b^2-4ac}}{2a}$

Design (Algorithm)

  • Start
  • Read a, b, c values
  • Compute d = b2 4ac
  • if d > 0 then
    • r1 = b+ sqrt (d)/(2*a)
    • r2 = b sqrt(d)/(2*a)
  • Otherwise if d = 0 then
    • compute r1 = -b/2a, r2=-b/2a
    • print r1,r2 values
  • Otherwise if d < 0 then print roots are imaginary
  • Stop

Implementation Code

You can see the live demo here: Live Demo.

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

int main() {
  float a, b, c, r1, r2, d;

  printf("Enter the values of a b c: ");
  scanf(" %f %f %f", & a, & b, & c);

  d = b * b - 4 * a * c;

  if (d > 0) {
    r1 = -b + sqrt(d) / (2 * a);
    r2 = -b - sqrt(d) / (2 * a);
    printf("The real roots = %f %f", r1, r2);
  } else if (d == 0) {
    r1 = -b / (2 * a);
    r2 = -b / (2 * a);
    printf("Roots are equal =%f %f", r1, r2);
  } else
    printf("Roots are imaginary");

  return 0;
}

Testing

Case 1:
Enter the values of a b c: 1 4 3
The real roots = -3.000000 -5.000000
Case 2:
Enter the values of a b c: 1 2 1
Roots are equal =-1.000000 -1.000000
Case 3:
Enter the values of a b c: 1 1 4
Roots are imaginary

Also learn these topics to enhance your basic knowledge of C programming:

Updated on: 2024-12-10T13:10:44+05:30

152K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements