1338 - C语言程序设计教程(第三版)课后习题10.4
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数。写一函数move:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
Input
输入数据的个数n n个整数移动的位置m
Output
移动后的n个数
Examples
Input
10 1 2 3 4 5 6 7 8 9 10 2
Output
9 10 1 2 3 4 5 6 7 8
Solution C++
#include<iostream> using namespace std; int a[50]; void move(int *q,int n,int m) { int *p,t=*(q+n-1); for (p=q+n-1; p>q; p--) *p=*(p-1); *q=t; if (--m) move(a,n,m); //递归 } int main() { int n,m; cin>>n; for (int i=0; i<n; i++) cin>>a[i]; cin>>m; move(a,n,m); for (int i=0; i<n; i++) cout<<a[i]<<" "; cout<<endl; return 0; }