25

Решение: Замена элементов массива

ЕГЭ · Информатика · Задание 25 · Массивы и строки
ПовышеннаяФИПИ860E60Развёрнутое решение≈ 8 минутРазбор в 4 шага
Условие

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −10 000 до 10 000 включительно. Гарантируется, что хотя бы один элемент массива делится нацело на 5. Опишите алгоритм, который находит максимум среди элементов массива, делящихся нацело на 5, а затем заменяет каждый элемент, делящийся нацело на 5, на найденный максимум. В качестве результата необходимо вывести изменённый массив, каждый элемент — с новой строки.

Например, для исходного массива из шести элементов 5, 7, 10, 25, 39, 15 программа должна вывести 25, 7, 25, 25, 39, 25.

В программе используются массив a из 30 элементов и целочисленные переменные i, j, k. Для Python исходные данные считываются следующим образом:
a = []
n = 30
for i in range(0, n):
a.append(int(input()))

Приведите фрагмент программы, который должен находиться на месте многоточия после ввода исходных данных. Можно использовать Python или другой язык программирования, указав его название и версию. Используйте только предложенные исходные данные и переменные.

Запишите фрагмент программы, реализующий поиск максимума, замену подходящих элементов и вывод изменённого массива.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

Для поиска максимума среди элементов, кратных 5, введём переменную j с начальным значением −10001. Это значение меньше любого возможного элемента массива.

$$j = -10001$$
2

Просматриваем все элементы массива. Если элемент делится на 5 и превосходит текущий максимум, обновляем значение j.

$$a[i] \% 5 = 0 \land a[i] > j \Rightarrow j = a[i]$$
3

После нахождения максимума ещё раз просматриваем массив и заменяем каждый элемент, кратный 5, на значение j.

$$a[i] \% 5 = 0 \Rightarrow a[i] = j$$

Выводим все элементы изменённого массива по одному в каждой строке.

$$print(a[i])$$
Ответ

Пример корректного решения на Python:

j = -10001
for i in range(n):
if a[i] % 5 == 0 and a[i] > j:
j = a[i]

for i in range(n):
if a[i] % 5 == 0:
a[i] = j

for i in range(n):
print(a[i])

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Искать максимум среди всех элементов, а не только среди кратных 5.

Заменять элементы до завершения поиска максимума.

Забыть вывести элементы, не кратные 5, без изменений.

Использовать дополнительную переменную, не объявленную в условии.

Закрепить приёмВ теме «Массивы и строки» ещё 237 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 25 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Массивы и строки»: в ней 238 задач, и у каждой есть такой же разбор. Регистрация не нужна.