РУҚА
25

Решение: Замена нечётных элементов массива

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

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

Например, для исходного массива из семи элементов:
148
1
202
351
171
74
201

программа должна вывести следующий массив:
148
172
202
351
172
74
201

Исходные данные объявлены в программе заранее: массив содержит 30 элементов и обозначен переменной a, количество элементов — переменной n, индекс элемента — переменной i. Разрешается использовать также целочисленные переменные j и k. В качестве ответа приведите фрагмент программы, находящийся вместо многоточия после ввода элементов массива. Можно использовать Python, Бейсик, алгоритмический язык, Паскаль или C++.

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

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

6 шагов
1

Сначала заведём переменную s для суммы подходящих элементов и обнулим её.

2

Первым проходом просмотрим все 30 элементов. Если элемент не больше 197 и нечётен, добавим его к сумме.

$$a[i] \leq 197 \land a[i] \bmod 2 = 1$$
3

Вторым проходом снова просмотрим массив. Каждый подходящий элемент заменим найденной суммой s.

4

После замены выведем все элементы массива, каждый с новой строки.

5

Один из возможных вариантов решения на Python:

s = 0
for i in range(n):
if a[i] <= 197 and a[i] % 2 == 1:
s += a[i]
for i in range(n):
if a[i] <= 197 and a[i] % 2 == 1:
a[i] = s
print(a[i])

Ответ

Python: s = 0; первый цикл находит сумму подходящих элементов, второй заменяет их на s и выводит массив.

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

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

Используют условие a[i] < 197 вместо a[i] <= 197.

Проверяют нечётность через деление, допуская ошибку; надёжнее использовать a[i] % 2 == 1.

Заменяют элементы во время вычисления суммы, из-за чего сумма получается неверной.

Выводят элементы не по одному в строке.

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

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

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

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