profile
Опубликовано 6 лет назад по предмету Информатика от blackbacardi010

Пользователь вводит последовательность чисел. Признак конца ввода 0.Определить 3 наибольших числа в последовательности.НА ЯЗЫКЕ ПИТОН .ШКОЛЬНЫЙ УРОВЕНЬ.ЖЕЛАТЕЛЬНО С ПОЯСНЕНИЯМИ!

  1. Ответ
    Ответ дан vlajong

    m1=0

    m2=0

    m3=0

    x=10

    while x!=0:

    x=int(input())#вводим число

    if m1<x:  

     m3=m2

     m2=m1

     m1=x

    elif x>m2 and  x>m3 and x<m1:

     m3=m2

     m2=x

    elif x<m2 and x<m1 and x>m3:

     m3=x

    print(m1,m2,m3,sep=" ")

    вот std алгоритм заключается в том что у нас три переменных и мы после нахождения максимума все переменные сдвигаем назад то есть m1 становится m2, m2 становится m3 а m1 присваивается новый максимум  и так же тут случаи когда m2 или m3 больше старых но мешьше m1 он тогда просто меняет значение именно той переменной которой он больше

    1. Ответ
      Ответ дан vlajong
      при этом если есть новый m2 то старый м2 переносится в m3
Самые новые вопросы