Программа выдает ошибку(учитывая, что входные данные : 0.1; -1.5; 10 ), код пишу на питоне. Должно выдать Нет корней. Заранее спасибо за помощь)
a = float(input()) #код
b = float(input())
c = float(input())
D = b ** 2 - 4 * a * c
from math import *
x = (-b + sqrt(D)) / (2 * a)
x2 = (-b - sqrt(D)) / (2 * a)
if D < 0:
print("Нет корней")
elif D == 0:
print(-b / (2 * a))
else:
print(min(x,x2), max(x, x2), sep="\n")
Error:
Traceback (most recent call last):
File "jailed_code", line 9, in <module>
x = (-b + sqrt(D)) / (2 * a)
ValueError: math domain error
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ну потому что проверять знак D нужно до того, как вы пытаетесь из него корень извлечь:
D = b ** 2 - 4 * a * c
if D < 0:
print("Нет корней")
elif D == 0:
print(-b / (2 * a))
else:
x = (-b + sqrt(D)) / (2 * a)
x2 = (-b - sqrt(D)) / (2 * a)
print(min(x,x2), max(x, x2), sep="\n")