/***************************************************
Implementing the Quadratic Formula
Write a program that reads in the coefficients of
a quadratic polynomial, and prints out its roots.
This time, deal correctly with complex roots!!!
The quadratic formula says that the roots of a
polynomial a x^2 + b x + c are:
____________ ____________
-b - \/ b^2 - 4 a c -b + \/ b^2 - 4 a c
x = ------------------- , -------------------
2 a 2 a
Remember, when b^2 - 4 a c you get imaginary roots,
and they are given by :
______________ ______________
-b - i \/ -b^2 + 4 a c -b + i \/ -b^2 + 4 a c
x = ----------------------- , ----------------------
2 a 2 a
***************************************************/
**#include <iostream>**
**#include <cmath>**
**using** **namespace** std;
**int** main()
**{**
// read in the coefficients of a x^2 + b x + c
**double** a,b,c;
**char** s;
cout << "Enter coefficients a, b, c: ";
cin >> a >> s >> b >> s >> c;
// compute the common subexpression within squareroot
**double** d;
d = b*b - 4.0*a*c;
// THE CASE OF COMPLEX ROOTS
**if** (d < 0)
**{**
cout << "The roots of the polynomial are ";
cout << -b/(2.0*a) << " + "
<<"(" << -sqrt(-d)/(2.0*a) << ")*i";
cout << " and ";
cout << -b/(2.0*a) << " + "
<< "(" << sqrt(-d)/(2.0*a) << ")*i"
<< endl;
**}**
// THE CASE OF REAL ROOTS
**else**
**{**
// compute x1 and x2, the two roots
cout << "The roots of the polynomial are ";
cout << (-b - sqrt(d))/(2.0*a) << " and ";
cout << (-b + sqrt(d))/(2.0*a) << endl;
**}**
**return** 0;
**}**