Write a program to solve a quadratic equation. The program should allow the user to enter the values for a, b, and c. If the discriminant is less than zero, a message should be displayed that the roots are imaginary; otherwise, the program should then proceed to calculate and display the two roots of the eqaution. (Note: Be certain to make use of the squareRoot () function that you developed in this chapter.) (In C language)

Hint: This should not be too hard. You need to get some numbers from the user, do some calculations, check if the discriminate is negative, then use the textbook author’s squareRoot function to finish up the calculations!

program 7.8:

// Function to calculate the absolute value of a number

#include

float absoluteValue(float x)

{

if (x < 0)

x = -x;

return (x);

}

// Function to compute the square root of a number

float squareRoot(float x)

{

const float espsilon = .00001;

float guess = 1.0;

while (absoluteValue(guess * guess - x) >= espsilon)

guess = (x / guess + guess) / 2.0;

return guess;

}

int main(void)

{

printf("squareRoot (2.0) = %f\n", squareRoot(2.0));

printf("squareRoot (144.0) = %f\n", squareRoot(144.0));

printf("SquareRoot (17.5) = %f\n", squareRoot(17.5));

return 0;

}

Respuesta :

Answer:

  1. int main(void)
  2. {
  3.    float a, b, c, discriminant, root1, root2;
  4.    printf("Enter value for a, b and c:");
  5.    scanf("%f %f %f", &a, &b, &c);
  6.    discriminant = b * b - 4 * a * c;
  7.    if(discriminant < 0){
  8.        printf("The roots are imaginary");
  9.    }else{
  10.        root1 = (-b + squareRoot(discriminant)) / (2*a);
  11.        root2 = (-b - squareRoot(discriminant)) / (2*a);
  12.        printf("Root 1: %f", root1);
  13.        printf("Root 2: %f", root2);
  14.    }
  15.    return 0;
  16. }

Explanation:

Firstly, we declare all the required variables (Line 3) and then get user input for a , b and c (Line 4-5).

Next, apply formula to calculate discriminant (Line 7).

We can then proceed to determine if discriminant smaller than 0 (Line 9). If so, display the message to show the roots are imaginary (Line 10).

If not, proceed to calculate the root 1 and root 2 (Line 12-13) and then display the roots (Line 15 -16)

Answer:

// Program to calculate the roots of a quadratic equation

// This program is written in C programming language

// Comments are used for explanatory purpose

// Program starts here

#include<stdio.h>

#include<math.h>

int main()

{

// For a quadratic equation, ax² + bx + c = 0, the roots are x1 and x2

// where d =(b² - 4ac) ≥ 0

// Variable declaration

float a,b,c,d,x1,x2;

// Accept inputs

printf("Enter a, b and c of quadratic equation: ");

scanf("%f%f%f",&a,&b,&c);

// Calculate d

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

// Check if d > 0 or not

if(d < 0){ // Imaginary roots exist

printf("The roots are imaginary");

}

else // Real roots exist

{

// Calculate x1 and x2

x1= ( -b + sqrt(d)) / (2* a);

x2 = ( -b - sqrt(d)) / (2* a);

// Print roots

printf("Roots of quadratic equation are: %.3f , %.3f",x1,x2);

}

return 0;

}

return 0;

}