Информатика, вопрос задал Abcdefg12345678910 , 1 год назад

Пользователь вводит с клавиатуры числа.
Программа должна подсчитывать сумму, максимум и минимум,
введенных чисел.
Когда пользователь вводит число 0
программа прекращает свою работу и выводит на экран
результат подсчетов. использовать надо цикл while и только один input


experced: питон?
Abcdefg12345678910: da

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

Ответил tamaranedzumi
1

n = 1   # любое число отличное от нуля, так как стоит ограничение на количество input() в программе

Min = 100**100  # Огромное число, выходящее за рамки ограничений

Max = -100**100 # Названия переменных Min и Max с большой буквы, так как min и max - встроенные функции

counter = 0 # переменная-счётчик, в которой считается сумма

while (n != 0):

   n = int(input())

   counter += n

   if n != 0:  # из-за ограничения на количество input() в программе...

       if (n <= Min):  # при вводе нуля, может получиться так, что это значение присвоится Min или Max

           Min = n

       elif (n > Max):

           Max = n

print(counter, Min, Max)    # Вывод оформи в том порядке, который требует тестирующая система


tamaranedzumi: https://onlinegdb.com/EmZZm_RIE - ссылка на код в среде
tamaranedzumi: https://onlinegdb.com/EmZZm_RIE - ссылка на ответ в среде
Abcdefg12345678910: нужно без диапазонов переменныъ
Abcdefg12345678910: имея ввиду без втроенных макс мин
tamaranedzumi: В моём решении не используются встроенные макс мин
tamaranedzumi: В третей строчке даже есть комментарий, поясняющий, почему переменные с максимальным и минимальным значением названы именно так, а не max min. Потому что названия max & min уже заняты. Поэтому Max & Min
tamaranedzumi: Что вы подразумеваете под диапазоном переменных?
tamaranedzumi: За что жалоба?((
p15: Если бы делали сами, а не ИИ, то знали бы как обойтись без диапазонов переменных.
Ответил p15
2

Ответ:

x,a=1,[]

while x:

   x=int(input('Вводите число, "0" для окончания: '))

   if x: a.append(x)

print(f'sum: {sum(a)}\nmin: {min(a)}\nmax: {max(a)}' if a else 'Не было введено чисел')

Если без while:

print('Вводите числа, "0" для окончания')

a=[int(i) for i in iter(input, '0')]

print(f'sum: {sum(a)}\nmin: {min(a)}\nmax: {max(a)}' if a else 'Не было введено чисел','\nGood bye!')

Объяснение:

В обоих версиях только один input, в первой есть while.

Ограничений на использование min, sum, max нигде в условии нет.


p15: Сейчас добавлю вариант с While
p15: есть ошибка, секунду. надо 0 исключить
p15: все
Новые вопросы