输入n(n<20)和m(m<n)的值,输入n个整数,将最后的m个数放到最前面,将前面n-m个数顺序后移。(用指针实现)
样例1:
输入:
7
3
1 2 3 4 5 6 7
输出:
5 6 7 1 2 3 4
const int n = 10;
int main()
{
void adjust(int *a);
int a[n];
for (int i = 0; i < n; i++) //输入10个整数 以数组形式储存
cin >> a[i];
int* p = a;
adjust(p);
for (int i = 0; i < 10; i++)
cout << a[i] << " ";
return 0;
}
void adjust(int *a)
{
void adj(int *a);
cout << "请输入将最后几个数字调整呢?" << endl;
int m = 0; //最后m个数字调整
cin >> m;
for (int i = 0; i < m; i++) //进行m次 每一次都是把最后一个调至第一个
{
adj(a);
}
}
void adj(int *a) //首元素地址
{
int tmp = *(a + n - 1); //最后元素
int* p = a; //这里是首元素地址
for (p += n - 1; p > a; p--)
*p = *(p - 1);
*a = tmp;
}