Problem D: 移数
Description
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
Input
多组测试数据。每组2行 第1行输入2个整数n和m, 1 < m < n < 100 第2行输入n个整数
Output
输出移动后的数据
Sample Input
4 2
1 4 5 6
Sample Output
5 6 1 4
HINT
调用后移函数move(move函数自己编写,用来移动数,可采用递归调用,当循环次数m为0时停止调用)
#include<stdio.h>
int move(int *x,int n,int m)
{
int t[100];
int i;//int *p;指针循环变量p
for(i=0;i<n;i++)
t[i]=x[i];
for(i=0;i<m;i++)
x[i]=t[n-m+i];
for(i=m;i<n;i++)
x[i]=t[i-m];
/*指针变量做循环变量也可以。
for(i=0,p=x;p<x+m;p++)
*p=t[n-m+i++];
for(i=0,p=x+m;p<x+n;p++)
*p=t[i++];
*/
}
int main()
{
int a[20],n,m,i;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
move(a,n,m);
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d",a[n-1]);
printf("\n");
}
return 0;
}