一元二次方程求根(已知a不等于0,输出时要求先输出较小的解)
思路很简单。由于a不等于0,故可以直接看Δ,然后针对Δ等于0和不等于0两种情况分别输出解。
但是对于我这样的新手还是有一些细节需要注意。
先看错解:
1.4ac和2a都要写成4*a*c和2*a.乘法一定要注意!
2.2*a作为分母,应该要单独带一个括号,不然会被认为a是乘在分子上
3.数学问题:x1要小于x2.但分子上是-b-sqrt(delta)的未必更小,因为a也有可能是负数。因此,必须要加一个if条件判断和swap
4.double后的所有变量都没有必要人为初始化。因为我后续会给它赋值,并且也没有引用它。
5.注意括号的一一对应
改进后的错解:
if(delta==0)的下一行.末尾应该再加一个括号.第一个括号限制2*a作为分母,第二个括号限制整个根,第三个括号是printf的括号.
正解:
还要多加练习!!!