编写程序,从键盘输入一个二元一次方程ax2 +bx+c=0的三个参数a、b、C (均为整数),求此方程的实根。如果方程有实根,则输出实根(精确到小数点后2位,较大实根在前),如果没有实根,则输出没有实根的信息。
时间: 2024-10-22 18:06:26 浏览: 30
为了编写这样的程序,你可以使用Python语言,因为它简洁易懂,并且提供了一个名为`cmath`的库,可以方便地处理复数运算。以下是程序的一个基本版本:
```python
import cmath
def calculate_roots(a, b, c):
# 计算判别式delta
delta = (b**2) - (4*a*c)
if a == 0: # 如果a为0,这不是二次方程,返回错误信息
print("这不是一个二次方程")
else:
# 计算两个解
root1 = (-b-cmath.sqrt(delta)) / (2*a)
root2 = (-b+cmath.sqrt(delta)) / (2*a)
# 检查是否为实根并保留两位小数
if delta >= 0 and isinstance(root1, complex) or isinstance(root2, complex):
print("没有实根")
else:
root1 = round(root1.real, 2)
root2 = round(root2.real, 2)
roots = sorted([root1, root2]) # 按照较大的根在前排序
print("实根: ", *roots)
# 获取用户输入
a = int(input("请输入系数a: "))
b = int(input("请输入系数b: "))
c = int(input("请输入系数c: "))
calculate_roots(a, b, c)
```
在这个程序中,用户需要通过键盘输入二元一次方程的系数。程序首先计算判别式,然后判断是否有实根。如果有实根,它会按顺序输出;如果没有实根,就提示“没有实根”。
阅读全文