7-52 数组元素循环右移问题 (20 分)
思路:根据右移的单位大小将数组分成两部分 左边部分进行右移 首先把右边部分第一个数组赋值给临时变量 接着左边部分从右至左右移一个单位 结束后把临时变量赋值给左边部分数组下标最小的数组 这样就完成了一个单位的右移 重复多次就完成整个数组的右移啦
#include <stdio.h>
int main(){
int a[100];
int n,m,t,c;
scanf("%d%d",&n,&m);
for(int i = 0;i < n;i ++){
scanf("%d",&a[i]);
}
m %= n;
c = n - m;
for(int i = c;i < n;i ++){
t = a[i];
for(int j = i;j > i - c;j --){
a[j] = a[j - 1];
}
a [i - c ] = t;
}
for(int i = 0;i < n - 1;i ++){
printf("%d ",a[i]);
}
printf("%d\n",a[n - 1]);
return 0;
}