#include <iostream.h>
#include <iomanip.h>
#include <math.h>
class complex
{
  public:
   complex(double r=0,double i=0){re=r;im=i}
virtual void Print();
protected:
  double re,im;
};
class real:public complex
{
  public:
  real(double r=0):complex(r,0){}
void  Print(){ cout<<re;}
};class root
{
  public:
   root(double m1,double m2,double m3){a=m1;b=m2;c=m3;}
  void  Print();
   void Solve();
protected:
  double a,b,c;
};void  complex::Print()
{
  cout <<"("<<re<<","<<im<<"i)";
}void root ::Print()
{
  cout<<"方程“;
  cout<<a;
 cout<<setiosflags(ios::showpos);
 cout<<"*x*x";
cout<<b<<"*x";
cout<<c<<"=0\n";
cout <<resetiosflags(ios::showpos);
}void::Solve()
{ Print();
  cout<<"result is :"<<endl;
  double delta=b*b-4*a*c;
  if(fabs(delta)<1e-5)
  {
   real x(-b/2/a);
   cout<<"\nx1=x2=";
   x.Print();
  }else if(delta>0){
      real x1(-b/2/a+sqrt(delta)/2/a);
      real x2(-b/2/a-sqrt(delta)/2/a);
 cout <<"\nx1=:";
x1.Print();
  cout<<"\nx2=:";
  x2.Print();
  }else{
    complex x1(-b/2/a,sqrt(-delta)/2/a);
   complex x2(-b/2/a,-sqrt(-delta)/2/a);
   cout<<"\n x1=:";
  x1.Print();
  cout<<"\n x2=:";
  x2.Print();
   }
}
void main()
{  double o1,o2,o3;
  cout<<"\n please input your index: a,b,c:";
  cin>>o1>>o2>>o3;
  root rot(o1,o2,o3);
  rot.Solve();
}