1

Цикл для смещения массива на заданное количество элементов С++

Всем привет!

Я только недавно начала пробовать программировать на С++

Приступила к изучению массивов.

Решила сделать программу, сдвигающую циклично массив на некоторое число, для примера взяла цифру- единичку.


Вот как выглядит код:


#include<iostream>

using namespace std;

int main() {

int n;

int const k = 5;

int mas[k] = {1,2,3,4,5};

int t = mas[k-1];

for (int i = k-2; i >=0; i--) {

mas[i+1] = mas[i];

}

mas[0] = t;

for (int i = 0; i < k; i++) {

cout << mas[i]<<" ";

}

}


А потом подумала, что хочу не статичную программу, а ту, что сдвигает циклично массив не на заранее придуманное число, а на число, которое пользователь введёт с клавиатуры!


Решила слегка переработать код выше, вот что получилось:


#include<iostream>

using namespace std;

int main() {

int n;

int const k = 5;

int mas[k] = {1,2,3,4,5};

int t = mas[k-1];

cin >> n;

for (int i = k-2; i >=0; i--) {

mas[(i+n)%k] = mas[i];

}

for (int i = 0; i < k; i++) {

cout << mas[i]<<" ";

}

}



Но, к сожалению, программа не работает, а я в упор не понимаю, как её сделать (


К сожалению, помочь мне некому, а брать готовый код с форумов я не хочу, потому пишу сюда.


Заранее извините, пожалуйста, если этот вопрос для опытных покажется простым и глупым, но я пока учусь, не бейте тапками)


Можете, пожалуйста, дать небольшую подсказку, как это решить? Мне не нужен код, я хочу сама допридумать решение☺


Всем хорошего дня!