Определить индексы четных элементов массива

Задача

Во втором массиве сохранить индексы четных элементов первого массива. Например, если дан массив со значениями 8, 3, 15, 6, 4, 2, то во второй массив надо заполнить значениями 1, 4, 5, 6 (или 0, 3, 4, 5 - если индексация начинается с нуля), т.к. именно в этих позициях первого массива стоят четные числа.

Пояснение к задаче и алгоритм решения

  1. Ввести для второго массива счетчик элементов.
  2. В цикле перебирая все элементы первого массива,
    1. проверять их на четность.
    2. Если элемент четный, то
      1. заносить его индекс в очередную ячейку второго массива,
      2. увеличивать на 1 значение счетчика элементов второго массива.
  3. Вывести на экран элементы второго массива от первого до последнего, на индекс которого указывает счетчик элементов второго массива (чаще за вычетом 1).

Исходный код на языке программирования Pascal

const N = 15;
var
    arr, even: array[1..N] of integer;
    i, j: byte;
begin
    randomize;
    for i:=1 to N do begin
        arr[i] := random(11);
        write(arr[i]:4)
    end;
    writeln;
 
    j := 0;
    for i:=1 to N do
        if arr[i] mod 2 = 0 then begin
            j := j+1;
            even[j] := i;
        end;
 
    write('Индексы четных элементов: ');
    for i:=1 to j do
        write(even[i], ' ');
    writeln;
end.

Пример(ы) выполнения программы на языке Pascal

   5   2   6  10   7   7   3   7  10   2   1   9   1   1   1
Индексы четных элементов: 2 3 4 9 10

Исходный код на языке программирования C

#include <stdio.h>
#define N 10
main() {
    int arr[N], even[N], i, j;
    srand(time(NULL));
    for (i=0; i<N; i++) {
        arr[i] = rand()%11+10;
        printf("%d ", arr[i]);
    }
    printf("\n");
    j = 0;
    for (i=0; i<N; i++)
        if (arr[i] % 2 == 0) {
            even[j] = i;
            j += 1;
        }
    printf("Индексы четных элементов: ");
    for (i=0; i<j; i++)
        printf("%d ", even[i]);
    printf("\n");
}

Пример(ы) выполнения программы на языке C

14 17 13 20 20 18 11 12 12 11
Индексы четных элементов: 0 3 4 5 7 8

Исходный код на языке программирования Python

from random import random
N = 10
arr = [0]*N
even = []
for i in range(N):
    arr[i] = int(random() * 10) + 10
    if arr[i] % 2 == 0:
        even.append(i)
print(arr)
print('Индексы четных элементов: ', even)

Пример(ы) выполнения программы на языке Python

[10, 10, 15, 12, 13, 19, 11, 18, 12, 15]
Индексы четных элементов:  [0, 1, 3, 7, 8]

Исходный код на языке программирования КуМир

алг индексы четных элементов
нач
  цел N = 15
  цел таб arr[1:N], even[1:N]
  цел i,j
  нц для i от 1 до N
    arr[i] := int(rand(0,11))
    вывод arr[i], " "
  кц
  вывод нс
  j := 0
  нц для i от 1 до N
    если mod(arr[i],2) = 0 то
      j := j + 1
      even[j] := i
    все
  кц
  вывод "Индексы четных элементов: "
  нц для i от 1 до j
    вывод even[i], " "
  кц
кон

Пример(ы) выполнения программы на языке КуМир

7 5 8 4 2 0 2 7 4 10 9 4 0 6 6
Индексы четных элементов: 3 4 5 6 7 9 10 12 13 14 15

Исходный код на языке программирования Basic

N = 10
dim arr(N)
dim even(N)
for i=0 to N-1
        arr[i] = int(rand *10) + 10
        print arr[i] + " ";
next i
print
j = 0
for i=0 to N-1
        if arr[i] % 2 = 0 then
                even[j] = i
                j = j + 1
        endif
next i
print "Индексы четных элементов: "
for i=0 to j-1
        print even[i] + " ";
next i

Пример(ы) выполнения программы на языке Basic

10 13 18 19 17 16 12 12 18 10
Индексы четных элементов:
0 2 5 6 7 8 9

Тема

Массивы

Уровень сложности

Средний

Дата публикации