日暮迟归 2022-10-31 14:57 采纳率: 75%
浏览 16
已结题

用程序求一个多次方程的根

img

img


下面的是题目,请问我的程序哪里出问题了,没有办法算出来正确的数值。

  • 写回答

1条回答 默认 最新

  • 楠山若芸 新星创作者: C/C++技术领域 2022-10-31 15:10
    关注
    
    #include<iostream>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    int main(){
     
        double a,b,c,delta;
        const double precision=1e-6;//小数精度。 
        double x1,x2;
        cin>>a>>b>>c;
        delta=b*b-4*a*c;
        if(delta<-precision)
            cout<<"No answer!\n";
        else if(fabs(delta)<precision){
            //认为等于0,浮点数,无法做相等比较。 
            x1=x2=-b/(2*a);
            printf("x1=x2=%.5lf",x1); 
        }else{
            //delta>0
            delta=sqrt(delta);
            x1=(-b+delta)/(2*a);
            x2=(-b-delta)/(2*a);
            if(x1>x2){
                a=x1;
                x1=x2;
                x2=a;
            }
            printf("x1=%.5lf;x2=%.5lf",x1,x2);
        }
            
        
        
     
    return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月7日
  • 已采纳回答 11月7日
  • 创建了问题 10月31日