
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до
10000 включительно. Опишите на одном из языков программирования алгоритм, который находит количество элементов массива, не меньших 1002 и при этом кратных 3, а затем заменяет каждый такой элемент на число, равное найденному количеству. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести измененный массив, каждый элемент массива выводится с новой строчки. Например, для массива из шести элементов: 4 1104 74 1005 6 1006 программа должна вывести числа 4 2 74 2 6 1006 Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных. const N = 30; var a: array [1..N] of longint; i, j, k: longint; begin for i := 1 to N do readln(a[i]); ... end.

Ответы на вопрос

Ответ:
const
N = 30;
var
a: array [1..N] of longint;
i, j, k: longint;
begin
for i := 1 to N do
readln(a[i]);
k:=0;
for i := 1 to N do
if ((a[i] mod 3 = 0) and (a[i]>=1002)) then k:=k+1;
for i := 1 to N do begin
if ((a[i] mod 3 = 0) and (a[i]>=1002)) then a[i]:=k;
writeln(a[i]);
end;
end.



Вот пример решения данной задачи на языке программирования Pascal:
pascalconst N = 30; var a: array[1..N] of longint; i, j, k, count: longint; begin for i := 1 to N do readln(a[i]); count := 0; for i := 1 to N do begin if (a[i] >= 1002) and (a[i] mod 3 = 0) then Inc(count); end; for i := 1 to N do begin if (a[i] >= 1002) and (a[i] mod 3 = 0) then a[i] := count; writeln(a[i]); end; end.
Этот код считывает значения массива a
из входа и выполняет два прохода по массиву.
В первом проходе мы подсчитываем количество элементов, удовлетворяющих условиям (не меньше 1002 и кратных 3), и сохраняем результат в переменной count
.
Во втором проходе мы заменяем каждый элемент, удовлетворяющий условиям, на значение count
и выводим измененный массив, по одному элементу на каждой строке.
Таким образом, для приведенного вами примера (4 1104 74 1005 6 1006) код выведет следующий результат:
yaml4
2
74
2
6
1006
Обратите внимание, что этот код предназначен для языка Pascal, но концепция алгоритма может быть применена и в других языках программирования.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili