C語言實現一元二次方程的實根和復根

題目:

編寫函數root(double a,double b,double c)和main(),在主函數中輸入一元二次方程的係數x,y,z,然後調用root函數求解此方程的根(實根和復根)並輸出。

代碼:

#include <stdio.h>
#include <math.h>
void root(double a,double b,double c);
void main(){
    double x,y,z;
    printf("請輸入一元二次方程x-y-z的值:");
    scanf("%lf,%lf,%lf",&x,&y,&z);
    root(x,y,z);
}
void root(double a,double b,double c){
    double p,x1,x2;
    p=b*b-4*a*c;
    if(p>0){
        x1=(-b+sqrt(p))/(2*a);
        x2=(-b-sqrt(p))/(2*a);
        printf("方程有兩個不同的實根:x1=%.2lf,x2=%.2lf\n",x1,x2);
    }
    else if(p==0){
        x1=(-b)/(2*a);
        printf("方程有兩個相同的實根:x1=x2=%.2lf\n",x1);
    }else{
        x1=(-b)/(2*a);
        x2=sqrt(fabs(p))/(2*a);
        printf("方程有兩個不同的虛根:x1=%.2lf+%.2lfi,x2=%.2lf-%.2lfi\n",x1,x2,x1,x2);
    }
    
}

測試1:

測試2:

測試3:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章