РУҚА
25

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

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

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

Исходный массив и переменные объявлены в условии. В ответе приведите фрагмент программы, который должен находиться на месте многоточия. Можно использовать Python, Бейсик, Алгоритмический язык, Паскаль или C++. Не используйте переменные, не объявленные в условии.

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

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

5 шагов
1

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

$$k = 10000$$
2

В первом проходе проверяем последнюю цифру каждого элемента. Если элемент оканчивается на 0 и меньше текущего минимума, сохраняем его в переменной $k$.

$$a[i] \bmod 10 = 0 \land a[i] < k$$
3

Во втором проходе заменяем каждый элемент, оканчивающийся на 0, найденным минимумом.

$$a[i] \bmod 10 = 0 \Rightarrow a[i] = k$$
4

После замены выводим все элементы массива. Например, корректный фрагмент на Python:

Код: k = 10000; for i in range(n): if a[i] % 10 == 0 and a[i] < k: k = a[i]; for i in range(n): if a[i] % 10 == 0: a[i] = k; for i in range(n): print(a[i])

Ответ

Один из корректных вариантов на Python:
k = 10000
for i in range(n):
if a[i] % 10 == 0 and a[i] < k:
k = a[i]
for i in range(n):
if a[i] % 10 == 0:
a[i] = k
for i in range(n):
print(a[i])

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

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

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

Проверка условия a[i] % 10 == 1 вместо a[i] % 10 == 0.

Вывод только изменённых элементов вместо всего массива.

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

Неверные индексы массива при переходе между Python и языками с индексацией от 1.

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

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

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

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