Написать программу для циклического сдвига массива в право и лево
1)на k элементов
2)на 1 элемент
Ответы
Ответ дал:
0
===== PascalABC.NET =====
procedure ЛевыйСдвигK(var a: array of integer; k: integer);
begin
var m := a.Length;
k := k mod m;
if k > 0 then
a := a[k:] + a[:k]
end;
procedure ПравыйСдвигK(var a: array of integer; k: integer);
begin
var m := a.Length;
k := k mod m;
if k > 0 then
a := a[m - k:] + a[:m - k]
end;
procedure ЛевыйСдвиг(var a: array of integer) :=
a := a[1:] + a[0:1];
procedure ПравыйСдвиг(var a: array of integer);
begin
var m := a.Length - 1;
a := a[m:] + a[:m];
end;
begin
// тест
var a := ArrRandom(8, 10, 99);
a.Println;
ЛевыйСдвиг(a);
a.Println;
ПравыйСдвиг(a);
a.Println;
ЛевыйСдвигK(a, 3);
a.Println;
ПравыйСдвигK(a, 3);
a.Println;
end.
Приложения:
![](https://st.uroker.com/files/04b/04bcc604afcd5117ec7fe0edb0e3bbb7.jpg)
EustassKid:
а не могли бы вы на с++ написать
Вас заинтересует
4 месяца назад
4 месяца назад
5 месяцев назад
5 месяцев назад
2 года назад
2 года назад
7 лет назад