下面的是题目,请问我的程序哪里出问题了,没有办法算出来正确的数值。
1条回答 默认 最新
关注 #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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 ADS生成的微带线为什么是蓝色空心的
- ¥15 求一下解题思路,完全不懂
- ¥15 tensorflow
- ¥15 densenet网络结构中,特征以cat方式复用后是怎么进行误差回传的
- ¥15 STM32G471芯片spi设置了8位,总是发送16位
- ¥15 R语言并行计算beta-NTI中tree文件的类型
- ¥15 如何解读marsbar导出的ROI数据?
- ¥20 求友友协助弄一下基于STC89C52单片机的声光控制灯原理图
- ¥15 arduino双向交通灯设计
- ¥15 有没有会粒子群算法的大能(○゜ε^○)求带不会出收敛图😭