请编程计算一元二次方程ax²+bx+c=0的根,a,b,c的值由用户从键盘输入,其中a≠0
时间: 2024-11-13 16:26:07 浏览: 28
一元二次方程的求解通常会涉及到韦达定理,也就是若一元二次方程 \( ax^2 + bx + c = 0 \) 的两个实数根分别为 \( x_1 \) 和 \( x_2 \),则有 \( x_1 + x_2 = -\frac{b}{a} \) 和 \( x_1 \cdot x_2 = \frac{c}{a} \)。
下面是一个简单的Python程序示例,用于计算并打印出这个方程的根:
```python
import cmath
# 用户输入系数
a = float(input("请输入 a 的值 (a ≠ 0): "))
b = float(input("请输入 b 的值: "))
c = float(input("请输入 c 的值: "))
# 计算判别式
d = (b**2) - (4*a*c)
# 如果判别式大于0,有两个实数根
if d > 0:
x1 = (- cmath.sqrt(d)) / (2 * a)
print(f"方程有两个实根:x1 = {x1.real:.2f}, x2 = {x2.real:.2f}")
# 判别式等于0,有一个实数根或一个复数根
elif d == 0:
x = -b / (2 * a)
if int(x.is_integer()):
x = int(x)
print(f"方程有一个实根:x = {x}")
else:
print(f"方程有一个重复实根:x = {x:.2f}")
else: # 判别式小于0,有两个复数根
real_part = -b / (2 * a)
imag_part = cmath.sqrt(-d) / (2 * a)
print(f"方程有两个共轭复数根:x1 = {real_part:.2f} + {imag_part:.2f}i, x2 = {real_part:.2f} - {imag_part:.2f}i")
阅读全文