编写程序,由键盘输入一元二次方程ax2+bx+c=0(a≠0)的a、 b、c的值,求方程的解
时间: 2024-11-24 18:17:17 浏览: 10
用Java编写程序,求一元二次方程ax²+bx+c=0的根(系数在程序中给定),并输出。
编写程序解决一元二次方程(也称为二次方程)\( ax^2 + bx + c = 0 \)(其中 \( a \neq 0 \)),通常需要使用公式法,即计算判别式 \( D = b^2 - 4ac \),然后根据判别式的值来确定根的情况:
1. 如果 \( D > 0 \),有两个不相等的实数根,可以使用公式 \( x_1 = \frac{-b + \sqrt{D}}{2a} \), \( x_2 = \frac{-b - \sqrt{D}}{2a} \) 来找出根。
2. 如果 \( D = 0 \),有一个重根,即 \( x = -\frac{b}{2a} \)。
3. 如果 \( D < 0 \),有两个共轭复数根。
以下是使用Python编写的一个简单示例:
```python
import cmath
def quadratic_solver(a, b, c):
# 计算判别式
D = (b**2) - (4 * a * c)
# 求解并处理三种情况
if D > 0:
root1 = (-b + cmath.sqrt(D)) / (2 * a)
root2 = (-b - cmath.sqrt(D)) / (2 * a)
print(f"两个不相等的实数根: {root1.real:.2f}, {root2.real:.2f}")
elif D == 0:
root = -b / (2 * a)
print(f"一个重根: {root:.2f}")
else: # D < 0
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-D) / (2 * a)
print(f"两个共轭复数根: {real_part:.2f} + {imaginary_part:.2f}i, {real_part:.2f} - {imaginary_part:.2f}i")
# 获取用户输入
a = float(input("请输入系数a: "))
b = float(input("请输入系数b: "))
c = float(input("请输入常数项c: "))
quadratic_solver(a, b, c)
```
阅读全文