#include<iostream>
using namespace std;
//有n个整数,使前面各数往后移m个位置,最后m个数变成前面m个数
void move(int* a, int n, int m)
{
int array_end = *(a + n - 1); //array_end是数列末位数
for (int* p = a + n - 1; p > a; p--) //从最后一位开始,依次往后推一位
*p = *(p - 1);
*a = array_end; //将原先的末位数放在数列第一位
m--;
if (m > 0)
move(a, n, m); //递归,调用m次,往后移动m位
}
int main()
{
int a[100],m, n;
cout << "要输入的整数个数:";
cin >> n;
cout << "输入这几个整数:";
for (int* p = a; p < (a + n); p++)
cin >> *p;
cout << "输入想要移动的位置:";
cin >> m;
move(a, n, m);
cout << "新数列:";
for (int* p = a; p < (a + n); p++)
cout << *p << " ";
return 0;
}
谭浩强c++第三版6-4
最新推荐文章于 2021-09-04 16:52:31 发布