c语言:有n个整数,编程使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
时间: 2024-03-26 17:34:53 浏览: 58
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数.
可以使用循环移位法来实现这个功能。具体的步骤如下:
1. 将数组的后m个数先暂存到一个临时数组中。
2. 将原数组的前n-m个数依次向后移动m个位置。
3. 将临时数组的m个数依次复制到原数组的前面m个位置。
代码实现如下:
```c
#include <stdio.h>
void move(int arr[], int n, int m) {
int tmp[m];
for (int i = 0; i < m; i++) {
tmp[i] = arr[n - m + i];
}
for (int i = n - m - 1; i >= 0; i--) {
arr[i + m] = arr[i];
}
for (int i = 0; i < m; i++) {
arr[i] = tmp[i];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = 5, m = 2;
move(arr, n, m);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:3 4 5 1 2
阅读全文