Все элементы, не равные нулю, переписать (сохраняя их порядок) в начало, а нулевые элементы – в конец массива - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д