C语言(求解一元二次方程的根)

  • 以下程序均在Visual C++6.0中运行成功

例:求方程2x^2-3x-6=0的根


#include 
#include 
void main()
{
    double a=2,b=-3,c=3-6,delt,x1,x2;//double换成float,可以运行,但会出现警告:warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data
    delt = b*b-4*a*c;
    x1=(-b+sqrt(delt))/(2*a);//sqrt为数学函数,表示根号
    x2=(-b-sqrt(delt))/(2*a);
    printf("x1=%.2lf x2=%.2lf\n",x1,x2);
}

运行结果:


x1=2.19 x2=-0.69
Press any key to continue

  • 求解一元二次方程的根的通用方法

  • 根据数学知识,首先要判断delta与0的关系,同时还要判断二次项系数系数是否为0


#include
#include
void main()
{
    double a,b,c,x,x1,x2,delta;
    printf("分别输入方程的三个系数:");
    scanf("%lf %lf %lf",&a,&b,&c);
    if(a)//a可以写成a==0
    {
        delta=sqrt(b*b-4*a*c);//sqrt为数学函数,表示根号
        if(!delta)//!delta可以写成delita==0
        {
            x1=x2=(-b)/(2*a);
            printf("该方程有唯一解:x1=x2=%.2lf\n",x1,x2);//保留了两位小数,精确度可调
        }
        else if(delta>0)
        {
            x1=(-b+delta)/(2*a);
            x2=(-b-delta)/(2 * a);
            printf("x1=%.2lf x2=%.2lf\n",x1,x2);
        }
        else 
            printf("该方程无解");
    }
    else
    {
        x=-c/b;
        printf("该方程的解为:x=%.2lf\n",x);
    }
}

C语言(求解一元二次方程的根)_第1张图片

 

作者主页: 正函数的个人主页
文章收录专栏: C语言

欢迎大家点赞 收藏 ⭐ 加关注哦!
如果你认为这篇文章对你有帮助,请给正函数点个赞吧,如果发现什么问题,欢迎评论区留言!!

 

你可能感兴趣的:(C语言,c语言)