У меня есть программа на C ++, где я должен вращать массив по часовой стрелке в соответствии с заданным количеством элементов, которые должны быть повернуты (x). Например, если входной массив равен
[1,2,3,4,5]
, учитывая, что 2 элемента (обозначенные как x) должны быть повернуты.
Выходной массив должен быть
[3,4,5,1,2]
Код :
#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
int n,x;
cin>>n>>x;
int a[n],b[x];
for(int i=0;i<n;i++){
cin>>a[i];
}
copy(a,a+x,b);
copy(b,b+x,a+n);
n=n+x;
for(int i=x;i<n;i++){
cout<<a[i]<<" ";
}
}
return 0;
}
Что я здесь делаю, так это то, что я копирую заданное количество элементов в новый массив. Позже скопируйте их обратно в исходный массив, начиная с 'n'. Так что мой массив будет выглядеть как [1,2,3,4,5,1,2].
Позже я распечатываю массив, начиная с индекса 'x'. Так что мой массив будет выглядеть как [3,4,5,1,2].
Я могу скомпилировать программу и получаю вывод. Но при отправке кода на веб-сайте GeekforGeeks его компилятор выбрасывает ошибку сегментации (SIGSEGV).