⼀个数组A中存有N个整数,在不允许使⽤另外数组的前提下,将每个整数循环向右移M个位置,即将A中的数据由(最后M个数循环移⾄最前⾯的M个位置)。C语言编程
时间: 2023-06-03 08:04:06 浏览: 203
解决C语言数组元素循环右移的问题
可以通过以下代码实现该算法:
```c
void rightShift(int arr[], int n, int m){
int temp, i, j;
m %= n; //防止m>n的情况
for(i = 0; i < m; i++){
temp = arr[n-1];
for(j = n-1; j > 0; j--){
arr[j] = arr[j-1];
}
arr[0] = temp;
}
}
```
其中,arr为待处理数组,n为数组长度,m为要右移的位数。
算法思路是循环m次,每次将数组最后一个数存入临时变量temp,再将数组内元素依次后移一位,最后再将temp存入数组的第一个位置,完成一次右移。
阅读全文