循环右移
#include <stdio.h> #include <stdlib.h> int n,m,a[200]; void RotateRight() { int i,j,temp; for(j=1;j<=m;j++) //m是右移的位数,一次向右移一位 { temp=a[n]; for(i=n;i>=1;i--) { a[i]=a[i-1];//保留最后一位,从倒数第二位开始右移 if(i==1) a[i]=temp; } } return ; } int main() { scanf("%d%d",&n,&m); int i; for(i=1;i<=n;i++) scanf("%d",&a[i]); RotateRight(); for(i=1;i<=n-1;i++) printf("%d ",a[i]); printf("%d\n",a[i]); return 0; }