¿En que esta mal mi codigo?
A continuacion les presento mi codigo que hice en c++, compilado en dev-c++, mi programa trata de hallar las raices de una ecuacion cuadratica, cuando el discriminante es positivo, no hay problema, pero cuando es negativo si los hay, salen unos valores los cuales no deberian salir, espero que lo chequeen, y me hagan llegar la falla, gracias,
A continuacion mi codigo:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c,disc,x1,x2,x,y;
cout<<"Sea la ecuacion cuadratica: ax2+bx+c=0"<<endl;
cout<<"Ingrese los valores de a, b y c para hallar las
raices"<<endl<<endl;
cout<<"a: ";
scanf("%f",&a);
cout<<"b: ";
scanf("%f",&b);
cout<<"c: ";
scanf("%f",&c);
cout<<endl<<endl;
disc=(b*b)-(4*a*c) ;
x=(-b)/(2*a);
if (disc>0)
{y=(sqrt(disc))/(2*a);
cout<<"Las raices son:"<<endl;
cout<<"x1= "<<(x+y);
cout<<endl<<"x2= "<<(x-y);}
else
{if (disc=0)
{cout<<"Existe una sola solucion: "<<endl;
cout<<"x="<<x;}
else
{
disc=(-1)*disc;
y=(sqrt(disc))/(2*a);
cout<<"Las raices son imaginarias:"<<endl<<endl;
if (a<0)
{y=(-1)*y;}
cout<<"x1= "<<x<<" + "<<y<<"i"<<endl;
cout<<"x2= "<<x<<" - "<<y<<"i";}
}
scanf("%f",&x);
getch();
}
A continuacion mi codigo:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c,disc,x1,x2,x,y;
cout<<"Sea la ecuacion cuadratica: ax2+bx+c=0"<<endl;
cout<<"Ingrese los valores de a, b y c para hallar las
raices"<<endl<<endl;
cout<<"a: ";
scanf("%f",&a);
cout<<"b: ";
scanf("%f",&b);
cout<<"c: ";
scanf("%f",&c);
cout<<endl<<endl;
disc=(b*b)-(4*a*c) ;
x=(-b)/(2*a);
if (disc>0)
{y=(sqrt(disc))/(2*a);
cout<<"Las raices son:"<<endl;
cout<<"x1= "<<(x+y);
cout<<endl<<"x2= "<<(x-y);}
else
{if (disc=0)
{cout<<"Existe una sola solucion: "<<endl;
cout<<"x="<<x;}
else
{
disc=(-1)*disc;
y=(sqrt(disc))/(2*a);
cout<<"Las raices son imaginarias:"<<endl<<endl;
if (a<0)
{y=(-1)*y;}
cout<<"x1= "<<x<<" + "<<y<<"i"<<endl;
cout<<"x2= "<<x<<" - "<<y<<"i";}
}
scanf("%f",&x);
getch();
}
