I have to write a programme in C++ Builder 4 that will calculate all roots of a quadratic equation, and am struggling to produce complex roots, it gives a message of

the first complex root = -1.5+ i+.AN

the second complex root = -1.5- i+.AN

it also gives the worng answer when the roots are equal, giving one root as 0.

this is the code

#include <stdio.h>

#include <iostream.h>

#include <conio.h>

#include <math.h>

#include <complex.h>

int main ()

{

float a,b,c,d,root1, root2, real1, real2,imag1,imag2; //define variables

Code:cout<<"p(x)= ax^2 + bx + c = 0 " << endl; //define the equation to be solved cout<<" " << endl; cout<<"enter the 3 parameters a, b, c: " << endl; //user enters 3 parameters to be calculated cin >>a>>b>>c; { if (a==0) //if a is 0 then this is not a quadratic equation form cout << "a cannot be 0 in a quadratic equation" << endl; } if(a==0){ if (b==0) //if a and b are 0 this is not a quadratic equation cout<< "both a and b cannot be 0 in ax^2 + bx + c =0" << endl; } { d = b*b-4*a*c; {if (d>0) // if d>0 this will give real roots { root1= (-b +(sqrt(b*b-4*a*c)))/(2*a); root2= (-b-(sqrt(b*b-4*a*c))) / (2*a); cout <<"the first root = " << root1 << endl; //outputs the first root cout <<"the second root = " << root2 << endl; //outputs the second root } } { if(d<0) // if d<0 this will give complex roots real1= ((-b)/(2*a)) ; real2= ((-b)/(2*a)) ; imag1= (((sqrt(b*b-4*a*c))/(2*a))) ; imag2= (((sqrt(b*b-4*a*c))/(2*a))) ; cout <<"the first complex root = " << real1 <<"+ i" << imag1 << endl; //outputs the first root cout <<"the second complex root = " << real2 << "- i" << imag2 << endl; //outputs the second root } } getch(); // keeps the window open until a key is pressed return 0; }

could anyone help me with this, i'm not very good with c++. thanks