求大神指点,这个应该怎么改? 使用c语言程序求一元二次方程的根

 我来答
响亮名字某某某
2014-12-09 · TA获得超过248个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:104万
展开全部
林瑞老师的《高质量cc++编程》说了:

千万要留意,无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
假设浮点变量的名字为x,应当将
if (x == 0.0) //隐含错误的比较
转化为
if ((x>=-EPSINON) &&(x<=EPSINON))
其中EPSINON是允许的误差(即精度)。


所以,这里的d和0的比较应该改成比较精度
比如改成
if(d >0.00000001)

再者说,a、b、c三个系数可以给定义成整数型的,因即使是float类型的,也可以在方程两边同时乘以相同的系数而转化成整形的,对吧?
所以,我建议把a、b、c、d四个变量定义成整型变量。这样的话就不存在判断判别式d的问题了。

望采纳。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SGL0730
2014-12-09 · TA获得超过255个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:63.7万
展开全部

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6fa3859
2014-12-09 · TA获得超过3349个赞
知道小有建树答主
回答量:1148
采纳率:85%
帮助的人:426万
展开全部
x1、x2是双精度,输出用%lf
更多追问追答
追问
还是不对啊

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d55bcd8
2014-12-09 · 超过23用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:41.2万
展开全部
哪里有误,是要保留几位小数?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式