如何编写一个程序,从用户键盘输入一元二次方程(a不等于零)的一般形式系数a、b和c,然后计算并显示该方程的解?
时间: 2024-12-02 22:20:14 浏览: 13
Python实现求解一元二次方程的方法示例
5星 · 资源好评率100%
编写一个程序来解决这个问题,你可以按照以下步骤来进行:
1. **获取用户输入**:
使用控制台读取或图形界面接收用户的输入,要求他们分别输入一元二次方程的系数 a、b 和 c。
```python
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
```
2. **检查a是否为0**:
确保a不等于0,因为对于一元二次方程 ax^2 + bx + c = 0,当a=0时,它不再是标准形式,而是线性方程。
```python
if a == 0:
print("抱歉,a不能为0,请输入非零的一元二次方程系数。")
else:
```
3. **计算判别式**:
计算方程的判别式 D = b^2 - 4ac,用于确定根的情况。
```python
D = b**2 - 4*a*c
```
4. **求解**:
根据判别式的值,可以分为三种情况:
- 如果D > 0,有两个实数解;
- 如果D = 0,有一个实数解(重根);
- 如果D < 0,无实数解,有复数解。
5. **打印结果**:
分别处理上述三种情况,并打印出解。
```python
real_solutions = []
complex_solutions = []
if D > 0:
real_solutions = (-b + (D)**0.5) / (2*a), (-b - (D)**0.5) / (2*a)
elif D == 0:
real_solutions.append(-b / (2*a))
else:
real_part = -b / (2*a)
imaginary_part = (D)**0.5 / (2*a)
complex_solutions.append(f"{real_part} + {imaginary_part}i"), complex_solutions.append(f"{real_part} - {imaginary_part}i")
print("解是:")
if len(real_solutions) == 2:
for sol in real_solutions:
print(sol)
elif len(real_solutions) == 1:
print(real_solutions[0])
else:
for sol in complex_solutions:
print(sol)
# 提示用户输入其他操作或结束程序
input("按回车键退出...")
```
阅读全文