编写一个程序求方程chujieguo

编写一个程序求方程ax^2 bx c=0的根,用三个函数分别求出当b^2- 4ac大于0 ,小于0和等于0时的根。要求从主函数输入a,b,c的值并输出结果。

可能会有几种情况,有两个、1个或者没有

#include<iostream>
using namespace std;
void Cal1(double a, double b, double c)
{
   cout << "该方程只有一个解"<<endl;
   cout <<"x=" << -a * 2 / b;
  
}
void Cal2(double a, double b, double c)
{
  cout << "该方程有两个不同的实根" << endl;
  double x1,x2;
  double m = b * b - 4 * a * c;
  x1 = (-b + sqrt(m)) / (2 * a);
  x2 = (-b - sqrt(m)) / (2 * a);
  cout << "x1=" << x1 << "  x2=" << x2 ;
}

void Cal0(double a, double b, double c)
{
    cout << "该方程有两个不同的复数根" << endl;
        if (b != 0)
        {
        
            double m1 = -b  / (2 * a);
            double m2 = sqrt(-m) / (2 * a);
            double n1 = -b  / (2 * a);
            double n2 = - sqrt(-m) / (2 * a);
            cout << "x1=" << m1 << (m2 > 0 ? "+" : "-") << fabs(m2) << "i" << "  x2=" << n1 << (n2 > 0 ? "+" : "-") << fabs(n2) << "i";
        }
        else
        {
            double m3 = sqrt(-m) / (2 * a);
            double n3 = -sqrt(-m) / (2 * a);
            cout << "x1=" << m3 << "i   x2=" << n3 << "i";
        }
}

int main()
{
    double a, b, c;
    cout << "本程序用于求解一元二次方程(a*x_2+b*x+c=0的根." << endl << "请输入对应的系数:";
    cin >> a >> b >> c;
        double m = b * b - 4 * a * c;
        if(m==0)
      Cal1(a, b, c);
        else if(m>0)
          Cal2(a,b,c);
        else 
          Cal0(a,b,c);

    system("pause");
    return 0;
}