一道C++的编程题,关于一元二次方程的,有题目有代码,求解我的代码哪里错了!求高手看看哪里做错了!!

2024-11-25 10:07:21
推荐回答(2个)
回答1:

#include 
#include 
#include 
using namespace std;

int main() {
    double a,b,c;
    while(cin>>a>>b>>c) {
    
      double delta=b*b-4*a*c;
    
      if(delta>=0) {
        double x1=(-1*b+sqrt(delta))/(2*a);
        double x2=(-1*b-sqrt(delta))/(2*a);
        if(x1==x2) printf("x1=x2=%.5lf\n",x1);
        else {
            printf("x1=%.5lf;x2=%.5lf\n",x1,x2);
        }
      } else {
        double shibu=-1*b/(2*a);
        double xubu=sqrt(-1*delta)/(2*a);
        printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n",shibu,xubu,shibu,xubu);
      }
    }
    return 0;
}

你有什么问题?

回答2:

其实这种问题,你用单步执行,看看各个变量里面的值就知道结果了。

直接告诉你没什么意思的。

其实这就是单步执行,DEBUG一下就出来的问题。。。

这个编程题其实更多的是在最短时间之内解决才是关键。。计算机中你用乘法还不如用加法代替,这样计算机就不会用浮点乘法去计算,用浮点加减法补码计算,自己掂量一下吧。。。