-
循环后移:有n个整数,使前面各数顺序向后移m个位置,移出的数再从开头移入。编写一个函数实现以上功能,在主函数中输入n个整数并输出调整后的n个数。试编写相应程序。
#include<stdio.h>
#define MAXN 10
int Loopshift(int a[],int b[],int n,int m);
int main(){
int a[MAXN],b[MAXN],n,m,i;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
Loopshift(a,b,n,m);
for(i=0;i<n;i++){
printf("%d ",b[i]);
}
return 0;
}
int Loopshift(int a[],int b[],int n,int m){
int k;
m=m%n;
for(k=0;k<n;k++){
b[(k+m)%n]=a[k];
}
}
输入样例: 10 4
1 2 3 4 5 6 7 8 9 10
输出结果:7 8 9 10 1 2 3 4 5 6