I'm getting strage output with the sqrt() function in a quadratic formula program. I'll also add that I had the same problem using pow(x,.5). It's definitely the function that's causing the problem, I've made sure of it.
Code:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
void quad(double, double, double, double&, double&);
int main() {
double a, b, c, x1, x2;
cout.setf(ios::fixed, ios::floatfield);
cout.setf(ios::showpoint);
cout << "Enter the values of A, B, and C for the quadratic equation."
<< "\n>";
cin >> a >> b >> c;
cin.ignore(3,'\n');
quad(a,b,c,x1,x2);
cout << setprecision(2) << "X = " << x1 << " or " << x2 << ".";
cin.get();
return 0;
}
void quad(double a, double b, double c, double& xPos, double& xNeg) {
if (2*a != 0 && (b*b - 4*a*c) < 0) {
xPos = (-b + sqrt(b*b - 4*a*c))/(2*a);
xNeg = (-b - sqrt(b*b - 4*a*c))/(2*a);
}
else {
xPos = 0;
xNeg = 0;
}
return;
}
Output:
Code:
Enter the values of A, B, and C for the quadratic equation.
>3 4 5
X = -1.#J or -1.#J.