
Задание _ Даны три стороны треугольника a,b,c. Определите тип треугольника с заданными сторонами.
Выведите одно из четырех слов: rectangular для прямоугольного треугольника, acute для остроугольного треугольника, obtuse для тупоугольного треугольника или impossible, если треугольника с такими сторонами не существует (считаем, что вырожденный треугольник тоже невозможен).---Мой код _a = int(input())b = int(input())c = int(input())if (a < b + c) or (b < a + c) or (c < b + a): if (c**2 == a**2 + b**2) or (a**2 == b**2 + c**2) or (b**2 == a**2 + c**2): print("rectangular") elif (a**2 > b**2 + c**2) or (b**2 > a**2 + c**2) or (c**2 > b**2 + a**2): print("obtuse") elif (a**2 < b**2 + c**2) or (b**2 < a**2 + c**2) or (c**2 < b**2 + a**2): print("acute")else: print("impossible")Сдал работу, но мне говорят, что что-то не так. Помогите понять, где ошибка или что я не учел. Все отступы если что у меня соблюдены. Ошибка должна быть в условии.

Ответы на вопрос

Ответ:
могу сделать код покороче если проходили списки и функции min и max
Объяснение:
a = int(input())
b = int(input())
c = int(input())
if (a > b + c) or (b > a + c) or (c > b + a):
print("impossible")
elif (c**2 == a**2 + b**2) or (a**2 == b**2 + c**2) or (b**2 == a**2 + c**2):
print("rectangular")
elif (a**2 < b**2 + c**2) and (b**2 < a**2 + c**2) and (c**2 < b**2 + a**2):
print("acute")
elif (c**2 > a**2 + b**2) or (a**2 > b**2 + c**2) or (b**2 > a**2 + c**2):
print("obtuse")
upd:почему то когда я копирую свой код от сюда и переношу в atom(редактор) такая ошибка хз в чем проблема надеюсь у тебя такой нет
upd:чтоб ее не было перепиши строки с принтами




Похоже, у вас есть ошибка в условиях проверки существования треугольника. Вы должны проверить, что каждая сторона меньше суммы двух других сторон, чтобы убедиться, что треугольник с такими сторонами может существовать. Однако в вашем коде вы используете побитовое "и" (<) вместо логического "и" (<). Также вам следует проверить условие на вырожденный треугольник, чтобы все стороны не были равны между собой.
Вот исправленный код:
pythona = int(input())
b = int(input())
c = int(input())
if (a < b + c) and (b < a + c) and (c < b + a) and (a != b) and (b != c) and (a != c):
if (c**2 == a**2 + b**2) or (a**2 == b**2 + c**2) or (b**2 == a**2 + c**2):
print("rectangular")
elif (a**2 > b**2 + c**2) or (b**2 > a**2 + c**2) or (c**2 > b**2 + a**2):
print("obtuse")
elif (a**2 < b**2 + c**2) or (b**2 < a**2 + c**2) or (c**2 < b**2 + a**2):
print("acute")
else:
print("impossible")
В этой версии кода я заменил побитовое "и" (<) на логическое "и" (<) и добавил проверки, чтобы исключить вырожденные треугольники (треугольники, у которых все стороны равны между собой). Теперь код должен работать правильно и определять тип треугольника с заданными сторонами.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili