¿En que esta mal mi codigo?

Ricardo
30 de Septiembre del 2003
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();
}

Polo
30 de Septiembre del 2003
Bueno si queires este mismo codigo arreglado escribeme te lo envio pues creo tienes errore en la forma de como usas los formatos de impresion

bye