思路:
找到数学方法解决:
1.先将数组整个倒转(使要右移的数放在左边)
2.再分别倒转使得两边恢复原来次序
难点(注意点):
1.m可能比n大故需要m%=n;2.数学思维
#include<stdio.h>
int main(void)
{
int n,m,i,t,p,q,wxx[100];
scanf("%d %d",&n,&m);
m%=n;
for(i=0;i<n;i++)
scanf("%d",&wxx[i]);
for(p=0,q=n-1;p<=q;p++,q--){
t=wxx[p];
wxx[p]=wxx[q];
wxx[q]=t;
}
for(p=0,q=m-1;p<=q;p++,q--){
t=wxx[p];
wxx[p]=wxx[q];
wxx[q]=t;
}
for(p=m,q=n-1;p<=q;p++,q--){
t=wxx[p];
wxx[p]=wxx[q];
wxx[q]=t;
}
for(i=0;i<n;i++)
printf("%d%c",wxx[i],i!=n-1?' ':'\n');
return 0;
}