📅  最后修改于: 2023-12-03 14:59:52.221000             🧑  作者: Mango
本程序是一个用C++写的右旋转K次后打印数组的程序。
通过右旋转K次,可以将一个数组中的元素按照一定的规律移动位置,最终得到一个新的数组,根据题目要求我们需要输出这个新数组。
对于本程序,我们先输入数组元素和需要右旋转的次数K,然后进行相应的操作,输出右旋转后的新数组。
下面是本程序的代码实现。
#include<iostream>
using namespace std;
void rightRotate(int a[], int n, int k){
int temp[k];
for(int i=n-k, j=0; i<n; i++,j++){
temp[j] = a[i];
}
for(int i=n-k-1; i>=0; i--){
a[i+k] = a[i];
}
for(int i=0; i<k; i++){
a[i] = temp[i];
}
}
int main(){
int n, k;
cout<<"Enter size of the array: ";
cin>>n;
int a[n];
cout<<"Enter array elements: ";
for(int i=0; i<n; i++){
cin>>a[i];
}
cout<<"Enter number of rotations: ";
cin>>k;
rightRotate(a, n, k);
cout<<"Array after "<<k<<" right rotations: ";
for(int i=0; i<n; i++){
cout<<a[i]<<" ";
}
return 0;
}
函数 rightRotate
: 右旋转函数。
参数说明:
a
: 输入数组序列。
n
: 输入数组大小。
k
: 右旋转的次数。
执行过程:
主函数:
rightRotate
进行相应的操作;程序执行结果如下:
Enter size of the array: 5
Enter array elements: 1 2 3 4 5
Enter number of rotations: 2
Array after 2 right rotations: 4 5 1 2 3
程序成功右旋转了数组并输出了右旋转后的新数组。