Решение: Замена элементов массива
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10000 включительно. Опишите на одном из языков программирования алгоритм, который находит минимум среди элементов массива, оканчивающихся на 0, а затем заменяет каждый элемент, оканчивающийся на 0, на число, равное найденному минимуму. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.
Исходный массив и переменные объявлены в условии. В ответе приведите фрагмент программы, который должен находиться на месте многоточия. Можно использовать Python, Бейсик, Алгоритмический язык, Паскаль или C++. Не используйте переменные, не объявленные в условии.
Решение по шагам
5 шаговПоскольку гарантируется наличие хотя бы одного элемента, оканчивающегося на 0, можно начать поиск минимума со значения $10000$.
$$k = 10000$$В первом проходе проверяем последнюю цифру каждого элемента. Если элемент оканчивается на 0 и меньше текущего минимума, сохраняем его в переменной $k$.
$$a[i] \bmod 10 = 0 \land a[i] < k$$Во втором проходе заменяем каждый элемент, оканчивающийся на 0, найденным минимумом.
$$a[i] \bmod 10 = 0 \Rightarrow a[i] = k$$После замены выводим все элементы массива. Например, корректный фрагмент на 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.