В общем случае алгоритм решения данной задачи можно свести к следующему:
1. Если очередной элемент меньше нуля, то увеличиваем счетчик отрицательных элементов и добавляем значение элемента к общей сумме отрицательных элементов.
2. Находим среднее арифметическое среди отрицательных элементов, разделив сумму значений элементов на количество найденных элементов.
3. Находим минимальный элемент в массиве. Определяем его индекс. Заменяем значение по найденному индексу на вычисленное выше среднее арифметическое.
Третью подзадачу (замену минимального элемента) можно решить двумя подходами:
1) написать цикл поиска минимального элемента и его индекса или 2)
воспользоваться фунциями встроенными в язык Python (по-сравнению с тем же
Pascal в Python много "дополнительных инструментов").
Функция min() возвращает минимальный элемент из переданного ей аргумента.
(Передавать можно не только список.)
Метод index() возвращает индекс переданного ему элемента в последовательности,
к которой он применяется.
arr = [] count = 0 # количество отрицательных элементов summa = 0 # сумма отрицательных элементов for i in range(10): item = int(input(str(i) + ' item: ')) arr.append(item) if item < 0: count += 1 summa += item if count != 0: mean = summa/count # среднее арифметическое minimal = min(arr) # значение минимального элемента в списке-массиве min_id = arr.index(minimal) # индекс минимального элемента arr[min_id] = round(mean) print(mean) print(arr)Пример выполнения кода:
0 item: 4 1 item: 5 2 item: 6 3 item: 7 4 item: 8 5 item: 9 6 item: -2 7 item: -6 8 item: -3 9 item: 0 -3.6666666666666665 [4, 5, 6, 7, 8, 9, -2, -4, -3, 0]Решение задачи в "классическом" стиле (без использования функций min() и
index() может выглядеть так:
arr = [] count = 0 summa = 0 min_id = 0 # индекс минимального элемента for i in range(10): item = int(input(str(i) + ' item: ')) arr.append(item) if item < 0: count += 1 summa += item if item < arr[min_id]: min_id = i if count != 0: mean = summa/count arr[min_id] = round(mean) print(mean) print(arr)