profile
Размещено 2 года назад по предмету Информатика от zhandarovaas

Вопрос по питону
При решении задачи: Напишите программу в которой пользователь вводит три числа, а программа определяет может ли существовать треугольник с этими сторонами.
Решение вот такое:
b = list(input("Введите три целых числа: "))
for i in b:
if b[0] + b[1] > b[2]:
print("Треугольник существует")
else:
print("Треугольник не существует")
Но программа выводит ответ несколько раз:
Введите три целых числа: 123
Треугольник не существует
Треугольник не существует
Треугольник не существует

Как это исправить????

  1. Ответ на вопрос
    Ответ на вопрос дан лекция

    1) как исправить:

    использовать флаг, отдельную переменную которая будет изменяться в зависимости от условий

    т.е. после ввода b прописываем допустим flag = 0, тогда в вашем if меняем знак больше на меньше и в теле if прописываем flag += 1

    (если какая-то сторона будет больше суммы двух других, flag станет больше единицы)

    соответственно else нам не нужен

    после прохода всех итераций for пишем вывод с условиями:

    если flag больше 0, то не существует, если иначе, существует

    2) можно было не заморачиваться с for, а просто проверить сразу все условия:

    https://znanija.com/task/45736920 - мое решение(ввод в первых 3 строках меняется на первую вашу)

    3) далее. ваш ввод не будет работать если длина любой из сторон будет больше 10(поскольку будут взяты только первые 3 числа из списка)

    4) также ваш цикл не будет работать поскольку вы проверяете одни и те же значения из b, местами они никак не меняется, соответственно ответ всегда будет один и тот же

    5) ваше решение я изменил учитывая вышеописанные пункты, но на мой взгляд оно нежизнеспособно, советую воспользоваться решением по ссылке

    b = list(map(int, input("Введите три целых числа: ").split()))

    flag = 0

    for i in b:

       for j in b:

           for k in b:

               if i != j and i != k and k != j:

                   if i + j <= k:

                       flag += 1

    if flag > 0:

       print("Треугольник не существует")

    else:

       print("Треугольник существует")

    1. Ответ на вопрос
      Ответ на вопрос дан zhandarovaas
      А можете написать, как будет выглядеть код для первого варианта,пожалуйста?
    2. Ответ на вопрос
      Ответ на вопрос дан лекция
      ну так и просили бы сразу)
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.