Шешімі: Обработка массива из 30 элементов
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит количество элементов массива, больших 100 и при этом не кратных 4, а затем заменяет каждый такой элемент на число, равное найденному количеству. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.
Например, для исходного массива из шести элементов:
141
256
92
148
511
4
программа должна вывести следующий массив:
2
256
92
148
2
4
Исходные данные объявлены заранее: массив содержит 30 элементов, а также доступны переменные для индексов и счётчика. Запрещается использовать переменные, не описанные в условии, но разрешается не использовать некоторые из описанных переменных. В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Допускается записать решение на другом языке программирования, указав его название и версию; при этом необходимо использовать те же исходные данные и переменные, которые предложены в условии.
Шешім по шагам
4 қадамЗаведём счётчик подходящих элементов и обнулим его.
$$j = 0$$Первым проходом просмотрим все элементы массива. Элемент учитывается, если он больше 100 и остаток от деления на 4 не равен нулю.
$$a[i] > 100 \land a[i] \bmod 4 \ne 0$$Вторым проходом заменим каждый подходящий элемент найденным количеством $j$ и выведем каждый элемент массива.
Например, на тілінде Python подходящий фрагмент имеет вид:
j = 0
for i in range(0, n):
if a[i] > 100 and a[i] % 4 != 0:
j += 1
for i in range(0, n):
if a[i] > 100 and a[i] % 4 != 0:
a[i] = j
print(a[i])
Python: j = 0; первым циклом подсчитать элементы, удовлетворяющие условиям a[i] > 100 и a[i] % 4 != 0; вторым циклом заменить их на j и вывести все элементы массива.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Заменяют элементы во время первого подсчёта, из-за чего последующие проверки могут выполняться уже для изменённых значений.
Проверяют только условие a[i] > 100 и забывают проверить некратность 4.
Используют условие a[i] % 4 == 0 вместо условия некратности.
Выводят только заменённые элементы, а не весь изменённый массив.
Используют дополнительную переменную, не объявленную в условии.