求方程ax2+bx+c=0的根,其中a,b,c由键盘输入。有以下几种情况:①a=0,不是二次方程;②b2-4ac=0,有两个相等的实根;③b2-4ac>0,有两个不等的实根;④b2-4ac<0,有两个共轭复根
时间: 2023-09-08 14:15:04 浏览: 48
。代码如下:
```python
import cmath
a = float(input("请输入a:"))
b = float(input("请输入b:"))
c = float(input("请输入c:"))
if a == 0:
print("不是二次方程")
else:
delta = b * b - 4 * a * c
if delta == 0:
x = -b / (2 * a)
print("有两个相等的实根,x1 = x2 = ", x)
elif delta > 0:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
print("有两个不等的实根,x1 = ", x1, ", x2 = ", x2)
else:
x1 = (-b + cmath.sqrt(delta)) / (2 * a)
x2 = (-b - cmath.sqrt(delta)) / (2 * a)
print("有两个共轭复根,x1 = ", x1, ", x2 = ", x2)
```
注意,当存在共轭复根时,需要使用cmath库中的sqrt函数进行计算。