用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 <stdio.h>
#include <math.h>

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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章