import math as m a=int() b=int() c=int() x1,y1=0,0 x2,y2=0,0 if b^2-4*a*c<0: y1=eval(m.sqrt(b^2-4*a*c)/2*a) y2=eval(-m.sqrt(b^2-4*a*c)/2*a) x1=(-b)/2*a x2=(-b)/2*a print(x1+y1) print(x2+y2) else: exit()
时间: 2023-12-16 17:04:13 浏览: 101
flex as3虚线
这段代码存在一些语法错误和逻辑问题。首先是语法错误,应该在导入 math 模块的语句后加上一个换行符,即:
```
import math as m
a, b, c = int(), int(), int()
x1, y1 = 0, 0
x2, y2 = 0, 0
```
其次,在第 5 行中的 `a` 应该被除数和分母都除以 2,即:
```
y1 = eval(m.sqrt(b**2 - 4 * a * c) / (2 * a))
y2 = eval(-m.sqrt(b**2 - 4 * a * c) / (2 * a))
```
另外,第 6、7 行的 `x1` 和 `x2` 似乎计算有误,应该改为:
```
x1 = (-b + y1) / (2 * a)
x2 = (-b + y2) / (2 * a)
```
最后,由于当判别式小于 0 时程序并没有进行实际的运算,而是直接退出,因此程序的输出始终为空。你需要对程序进行修改,使其在判别式小于 0 时给出提示信息,否则才进行运算和输出。修改后的代码如下:
```
import math as m
a, b, c = int(), int(), int()
x1, y1 = 0, 0
x2, y2 = 0, 0
if b**2 - 4 * a * c < 0:
print("无实数解")
else:
y1 = eval(m.sqrt(b**2 - 4 * a * c) / (2 * a))
y2 = eval(-m.sqrt(b**2 - 4 * a * c) / (2 * a))
x1 = (-b + y1) / (2 * a)
x2 = (-b - y2) / (2 * a)
print(x1, x2)
```
希望这可以帮到你!
阅读全文