有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
输入格式
输入数据的个数n n个整数 移动的位置m
输出格式
移动后的n个数
10 1 2 3 4 5 6 7 8 9 10 2
样例输出
9 10 1 2 3 4 5 6 7 8
//数字后移
#include<iostream>
#include<string>
#include<istream>
using namespace std;
int Adjust(int N, int a[], int m) {
/*int b[m];*/ //存储要交换的数组,要动态存储
int* b = new int[m];
int z = 0;
for (int i = N - m; i < N && z<m; i++ , z++) { //暂时存储(最后m个)
b[z] = a[i];
}
for (int j = N-1;j>=m; j--) { //数组往后移动m个单位
a[j] = a[j - m]; //j->j-m的值
}
for (int i = 0; i < m; i++) {
a[i] = b[i];
}
for (int i = 0; i < N; i++) {
cout << a[i]<<" "; //输出
}
delete[] b; //使用完释放内存
return 0;
}
int main() {
int N;
int m; //移动的位置m
cin >> N;
int* a = new int[N];
for (int i = 0; i < N; i++) {
cin >> a[i];
}
cin >> m;
Adjust(N,a,m);
return 0;
}