Все элементы, не равные нулю, переписать (сохраняя их порядок) в начало, а нулевые элементы – в конец массива - Free Pascal
Формулировка задачи:
Задан одномерный массив. Все его элементы, не равные нулю, переписать (сохраняя их порядок) в начало массива, а нулевые элементы – в конец массива. Новый массив не заводить.
Решение задачи: «Все элементы, не равные нулю, переписать (сохраняя их порядок) в начало, а нулевые элементы – в конец массива»
textual
Листинг программы
var a: Array[Byte] Of ShortInt; i, j, count, n: Byte; temp: ShortInt; begin repeat Write('n='); ReadLn(n); until (n > 0); Randomize(); Write('Original array:'); for i := 0 to n - 1 do begin a[i] := Random(11) - 5; Write(a[i]:4); end; i := 0; count := 0; repeat if (a[i] = 0) then begin Inc(count); for j := i to n - 1 - count do begin temp := a[j]; a[j] := a[j + 1]; a[j + 1] := temp; end; end else Inc(i); until (i + count >= n); WriteLn; Write('Modified array:'); for i := 0 to n - 1 do Write(a[i]:4); end.
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Вводится размер массива в байтах (n) с помощью цикла repeat-until и функции ReadLn.
- Инициализируются массив a и переменные i, j, count, n. Значения массива a заполняются случайными числами от -5 до 5 с помощью функции Random и цикла for.
- Выводится исходный массив с помощью цикла for и функции Write.
- Запускается цикл repeat-until, который выполняется до тех пор, пока i + count не станет больше или равным n.
- В условии цикла проверяется, является ли текущий элемент массива равным нулю.
- Если текущий элемент массива равен нулю, то увеличивается счетчик count, а элементы, начиная с текущего и до конца массива (за исключением нулевых), перемещаются в начало массива с помощью цикла for и временной переменной temp.
- Если текущий элемент массива не равен нулю, то увеличивается значение i.
- После выхода из цикла repeat-until выводится измененный массив с помощью цикла for и функции Write.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д