下面的是题目,请问我的程序哪里出问题了,没有办法算出来正确的数值。
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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 数学建模来解决我这个问题
- ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
- ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
- ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
- ¥30 NIRfast软件使用指导
- ¥20 matlab仿真问题,求功率谱密度
- ¥15 求micropython modbus-RTU 从机的代码或库?
- ¥15 django5安装失败
- ¥15 Java与Hbase相关问题
- ¥15 后缀 crn 游戏文件提取资源