Вопрос задан 13.07.2023 в 16:04. Предмет Информатика. Спрашивает Гайдов Эмиль.

Задание _ Даны три стороны треугольника 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")Сдал работу, но мне говорят, что что-то не так. Помогите понять, где ошибка или что я не учел. Все отступы если что у меня соблюдены. Ошибка должна быть в условии.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Батомункуева Ирина.

Ответ:

могу сделать код покороче если проходили списки и функции 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:чтоб ее не было перепиши строки с принтами


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Похоже, у вас есть ошибка в условиях проверки существования треугольника. Вы должны проверить, что каждая сторона меньше суммы двух других сторон, чтобы убедиться, что треугольник с такими сторонами может существовать. Однако в вашем коде вы используете побитовое "и" (<) вместо логического "и" (<). Также вам следует проверить условие на вырожденный треугольник, чтобы все стороны не были равны между собой.

Вот исправленный код:

python
a = 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")

В этой версии кода я заменил побитовое "и" (<) на логическое "и" (<) и добавил проверки, чтобы исключить вырожденные треугольники (треугольники, у которых все стороны равны между собой). Теперь код должен работать правильно и определять тип треугольника с заданными сторонами.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос