计算二次方程根

Posted flxx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算二次方程根相关的知识,希望对你有一定的参考价值。

 

#include <cmath>
#include <iostream>
using namespace std;

template<typename T>
bool OutputRoots(const T& a,const T& b,const T& c)
{
    if(0 == a)
    {
        cout << "被除数不能为0!" << endl;
        return -1;
    }
    T d = b*b -4*a*c;
    if(d > 0)   // 两个实根
    {
        float sqrtd = sqrt(d);
        cout << "There are two real roots "
             << (-b+sqrtd)/(2*a) << " and "
             << (-b-sqrtd)/(2*a) << endl;
    }
    else if(d == 0) // 两个根据相等
    {
        cout << "There is only one distinct root "
             << -b/(2*a) << endl;
    }
    else // 两个复根
    {
        cout << "The roots are complex " << endl
             << "The real part is "
             << -b/(2*a) << endl
             << "The imaginary part is "
             << sqrt(-d)/(2*a) << endl;
    }
    return true;
}

int main()
{
    OutputRoots(0,-5,6);
    return 0;
}

以上是关于计算二次方程根的主要内容,如果未能解决你的问题,请参考以下文章

利用Python语言计算方程的根

如何用二分法求平方根???

[计算机数值分析]牛顿法求解方程的根

Citardauq Formula无法正常工作

用if语言解一元二次方程的C语言程序,在线等~~...

C语言题“输入系数的有效值,计算一元二次方程的实根和虚根”怎么编?