Форум сайта python.su
0
Добрый день!
Самообучаюсь питону. Нашел задачу на массив:
На вход программа получает набор чисел, заканчивающихся решеткой. Вам требуется найти: среднее, максимальное и минимальное число в последовательности. Так же нужно вывести cумму остатков от деления суммы троек на последнее число тройки (каждые 3 введеных числа образуют тройку).
Формат входных данных
Последовательность чисел, заканчивающися ‘#’. Все числа от 1 до 100. Количество чисел в последовательности кратно трем. Одно число на строку.
Решить необходимо с использованием массива не применяя append.
Мысли пока такие: создать список из 3 элементов и зациклить его, вычисляя каждый раз искомые значения. Типа:
try: while True: for n in range (N): A[n] = int(input()) n += 1 a = A[0] b = A[1] c = A[2] if n > 2: n = 0 # далее засунуть в функцию вычисление Max, Min... и вызывать значения вычислений except ValueError: print (...)
Отредактировано graf (Фев. 11, 2020 10:13:36)
Офлайн
0
Неужели, нет ни у кого идей? Или новичков просто игнорируют?
Офлайн
44
.
и вставьте ссылку на его url Офлайн
0
В общем вроде родил…
N = 3
A = [0] * N
n = 0
Midle = 0
Max = 1
Min = 100
Division = 0
k = 0
def Mine ():
MX = max (a, b, c)
MD = (a + b + c) / 3
MN = min (a, b, c)
DIV = (a + b + c) % c
return MD, MX, MN, DIV
try:
while True:
for n in range (N):
A[n] = int(input())
n += 1
a = A[0]
b = A[1]
c = A[2]
if n > 2:
n = 0
MD, MX, MN, DIV = Mine ()
Midle = (Midle*k + MD)
Max = MX if Max < MX else Max
Min = MN if Min > MN else Min
Division = Division + DIV
k += 1
Midle /= k
except ValueError:
print (round(Midle,3), Max, Min, Division)
Офлайн