Решаем задачи Абрамян на Паскале. Array106

Array106. Дан массив размера $$N$$. Продублировать в нем элементы с четными номерами ($$2, 4, …$$). Условный оператор не использовать.

Решение:

Решение от olegst1975:

Ниже одним массивом(объявляем с запасом 10 плюс максимум 5 четных). Первый цикл соответствует количеству четных эл-тов в массиве, причем в обратном порядке — начинаем дублирование от больших индексов, чтобы младшие не сбивались. Второй по мотивам предыдущих задач — сдвигаем элементы (с текущего последнего и до текущего четного) на один.

Решение от Kirk:

 

Задачи из раздела Array  можно посмотреть здесь.

Комментарии:

Комментарии 8

  • условный оператор, т.е. if не использовать

  • i:=0;
    repeat
    i:=i+2;
    Write(A[i-1],A[i],A[i]);
    until (i>n)

  • Да, согласен проблема есть.
    но так просто от неё не избавишься, «Продублировать в нем » тоесть на выходе должен быть массив с удвоенными элементами с чётными номерами…
    к тому же в вашем примере мы выходим за границы массива.
    исправил своё решение:
    Было:

    Стало:

  • Ниже одним массивом(объявляем с запасом 10 плюс максимум 5 четных). Первый цикл соответствует количеству четных эл-тов в массиве, причем в обратном порядке — начинаем дублирование от больших индексов, чтобы младшие не сбивались. Второй по мотивам предыдущих задач — сдвигаем элементы (с текущего последнего и до текущего четного) на один.

    [/crayon]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *