### problem with output

Hey! So I wrote this code:

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a,b,c;
double x1,x2,delta;
cin>>a;
cin>>b;
cin>>c;
delta=b*b-4*a*c;
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
cout<<"x1="<<x1<<"x2="<<x2;
}

For some reason it only outputs "nan". Any ideas why? I tried with many inputs.
Yo! So I tried
 ```1 2 1 x1=-1x2=-1 ```

Seems to work.

However, a, b, c should be double, not int. And make sure that you only input equations with real roots; i.e. those for which b2-4ac>=0. Trying "2 1 2" rather than "1 2 1" would be a disaster, for example.
Last edited on
 ``12345678910111213141516171819`` ``````#include #include using namespace std; int main() { double a {}, b {}, c {}; cout << "Enter a b c values: "; cin >> a >> b >> c; if (const double discrim {b * b - 4.0 * a * c}; discrim >= 0) { const double x1 {(-b + sqrt(discrim)) / (2.0 * a)}; const double x2 {(-b - sqrt(discrim)) / (2.0 * a)}; cout << "x1= " << x1 << " x2= " << x2; } else cout << "Complex roots!\n"; }``````

Last edited on
Topic archived. No new replies allowed.