import math as m a=input() b=input() c=input() if a==0 or b**2-4*a*c: print("输入错误") else: x1,y1=0,0 x2,y2=0,0 y1=(m.sqrt(b**2-4*a*c)/(2*a)) y2=(-m.sqrt(b**2-4*a*c)/(2*a)) x1=(-b)/(2*a) x2=(-b)/(2*a) print("{:.2f}+{:.2f}i".format(x1 ,y1 )) print("{:.2f}+{:.2f}i".format(x2 ,y2 ))
时间: 2023-12-16 17:04:13 浏览: 156
这段代码可以求解一元二次方程的根,但是存在一个问题。
在读入 a, b, c 的值时,应该使用 input 函数来获取用户输入。另外,由于 input 函数返回的是字符串类型,所以需要使用 int 函数将其转换为整型。因此,需要将 a, b, c 的赋值语句修改为:
```
a = int(input())
b = int(input())
c = int(input())
```
修改后的代码如下所示:
```
import math as m
a = int(input())
b = int(input())
c = int(input())
if a == 0 or b**2 - 4*a*c < 0:
print("输入错误")
else:
x1, y1 = 0, 0
x2, y2 = 0, 0
y1 = (m.sqrt(b**2 - 4*a*c) / (2*a))
y2 = (-m.sqrt(b**2 - 4*a*c) / (2*a))
x1 = (-b) / (2*a)
x2 = (-b) / (2*a)
print("{:.2f}+{:.2f}i".format(x1, y1))
print("{:.2f}+{:.2f}i".format(x2, y2))
```
给定的方程为 x^2 + 2x - 3 = 0,它的解为 x1 = -1 + sqrt(4+12)/2 = -1 + sqrt(16)/2 = -1 + 2 = 1 和 x2 = -1 - sqrt(4+12)/2 = -1 - sqrt(16)/2 = -1 - 2 = -3,其中 sqrt(-8) = sqrt(8)i = 2sqrt(2)i。因此,程序的输出应该为:
```
-1.00+1.41i
-1.00-1.41i
```
阅读全文