给定 3个浮点数a,b,c,表示一元二次方程等个三个系数,利用选择结构 编写程序,求方程的根并输出
时间: 2024-11-09 13:22:07 浏览: 52
C语言编写的求一元二次方程的根(实根和复根)
5星 · 资源好评率100%
当给定三个浮点数 a、b 和 c,它们分别代表一元二次方程 ax^2 + bx + c = 0 的系数时,我们可以使用选择结构(比如 if-else 或 switch-case 结构)编写程序来计算方程的根。这里假设我们使用的是求解公式:
如果判别式 D = b^2 - 4ac 是正数,那么有两个实根:
x1 = (-b + sqrt(D)) / (2a)
x2 = (-b - sqrt(D)) / (2a)
如果判别式 D == 0,那么有一个实根:
x = -b / (2a)
如果判别式 D < 0,意味着有两个复根(共轭复数),我们可以用复数表示:
x1 = (-b + i*sqrt(-D)) / (2a)
x2 = (-b - i*sqrt(-D)) / (2a),其中 i 表示虚数单位
以下是使用 Python 编写的简单示例:
```python
import cmath
def calculate_roots(a, b, c):
discriminant = b**2 - 4 * a * c
if discriminant > 0:
x1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
x2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
print(f"两个实根: {x1.real:.2f}, {x2.real:.2f}")
elif discriminant == 0:
root = -b / (2 * a)
print(f"一个实根: {root:.2f}")
else:
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
print(f"两个共轭复根: {real_part:.2f} + {imaginary_part:.2f}i, {real_part:.2f} - {imaginary_part:.2f}i")
# 测试
calculate_roots(1, -3, 2)
```
阅读全文