Сдвиг массива на k элементов влево или вправо
Не менее возникает вопрос о сдвиге массива на k элементов влево или вправо.
Было
1 2 3 4 5
Стало
5 1 2 3 4
Сдвиг влево на k элементов:
var
a:array[1..100] of integer;
i,r,n,k,j:integer;
begin
read(n,k); {k обозначает величину сдвига}
for i:=1 to n do
read(a[i]);
for i:=1 to k do
begin
for j:=1 to n do
if (j=1) then r:=a[j] else a[j-1]:=a[j];
a[n]:=r;
end;
for i:=1 to n do
write(a[i],' ');
readln
end.
Сдвиг на k элементов вправо:
var
a:array[1..100] of integer;
i,r,n,k,j:integer;
begin
read(n,k); {k обозначает величину сдвига}
for i:=1 to n do
read(a[i]);
for i:=1 to k do
begin
for j:=n downto 1 do
if (j=n) then r:=a[n] else a[j+1]:=a[j];
a[1]:=r;
end;
for i:=1 to n do
write(a[i],' ');
readln
end.
Комментарии:
Нету комментариев для вывода...