Одномерный массив, содержащий N элементов, состоит из нулей, единиц и двоек, расположенных в произвольном порядке (заполнение массива — случайным образом). Преобразовать массив так, чтобы вначале расположились все двойки, затем все нули и, наконец, все единицы — Pascal(Паскаль)

uses crt;
const max=100;
var a:array[1..max] of byte;
    n,i,j,k,x:byte;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',max,' n=');
readln(n);
until n in [1..max];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(3);
  write(a[i],' ');
 end;
writeln;
writeln;
{2 вперед}
k:=0;
for i:=1 to n do
if a[i]=2 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i downto k+1 do
    a[j]:=a[j-1];
    a[k]:=x;
  end;
{1 в конец}
k:=0;
for i:=n downto 1 do
if a[i]=1 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i to n-k do
    a[j]:=a[j+1];
    a[n-k+1]:=x;
  end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i],' ');
readln
end.

Leave a Comment

− 1 = 1