用c语言求解一元二次方程(共轭根除外)

只含有一个未知数(一元,并且未知数项的最高次数是2(二次)的整式方程叫做一元二次方程。一元二次方程经过整理都可化成一般形式ax²+bx+c=0(a≠0。其中ax²叫作二次项,a是二次项系数;bx叫作一次项,b是一次项系数;c叫作常数项。

利用一元二次方程根的判别式可以判断方程的根的情况 。
delta=b^2-4ac;
一元二次方程的根与根的判别式有如下关系:
①当delta>0时,方程有两个不相等的实数根;
②当delta=0时,方程有两个相等的实数根;
③当delta<0时,方程无实数根,但有2个共轭复根。
上述结论反过来也成立。
若delta>=0,可用求根公式(-b±delta^½/(2*a))计算出方程的两个解。(delta=0,两解相同)

直接上代码

#include 
#include 

int main(void){
    double a,b,c;
    double delta;
    double x1,x2;
    printf("请输入 ax^2+bx+c中的 a,b,c的值:\n");
    scanf("%lf %lf %lf",&a,&b,&c);
    delta=b*b-4*a*c;
    if (delta>0) {
        x1=(-b+sqrt(delta))/(2*a);
        x2=(-b-sqrt(delta))/(2*a);
        printf("x1=%lf x2=%lf\n",x1,x2);
    } else if(delta==0){
        x1=x2=-b/(2*a);
        printf("x1=x2=%lf\n",x1);
    }else{
        printf("无实数解!\n");
    }
    return (0);
}

你可能感兴趣的:(代码练习)