c++编程求解一元二次方程ax2+bx+c=0的根(需要考虑a、b、c所有可能情况)。
时间: 2023-05-26 21:04:07 浏览: 110
已知二元一次方程ax²+bx+c=0(a≠0),编程实现求解方程的根。(分三种情况考虑)
以下是Python代码实现:
```python
import math
def solve_equation(a, b, c):
if a == 0:
if b == 0:
if c == 0:
print("方程有无数解")
else:
print("方程无解")
else:
x = -c/b
print("方程有一个解:x={}".format(x))
else:
delta = b*b - 4*a*c
if delta < 0:
print("方程无实数解")
elif delta == 0:
x = -b/(2*a)
print("方程有一个解:x={}".format(x))
else:
x1 = (-b + math.sqrt(delta))/(2*a)
x2 = (-b - math.sqrt(delta))/(2*a)
print("方程有两个解:x1={}, x2={}".format(x1, x2))
# 测试
solve_equation(2, 4, 2) # 有一个解:x=-1.0
solve_equation(1, 5, 6) # 有两个解:x1=-2.0, x2=-3.0
solve_equation(0, 0, 1) # 无解
solve_equation(0, 0, 0) # 有无数解
```
输出:
```
方程有一个解:x=-1.0
方程有两个解:x1=-2.0, x2=-3.0
方程无解
方程有无数解
```
阅读全文