用C语言编译实现以下功能,有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
时间: 2023-12-20 11:51:51 浏览: 31
以下是用C语言实现该功能的代码:
```c
#include <stdio.h>
void rotate_array(int arr[], int n, int m);
int main() {
int n, m;
printf("请输入整数个数n:");
scanf("%d", &n);
printf("请输入向后移动的位置m:");
scanf("%d", &m);
int arr[n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
rotate_array(arr, n, m);
printf("移动后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void rotate_array(int arr[], int n, int m) {
int tmp[m];
for (int i = n - m; i < n; i++) {
tmp[i - (n - m)] = arr[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];
}
}
```
使用方法如下:
1. 输入整数个数n;
2. 输入向后移动的位置m;
3. 依次输入n个整数;
4. 输出移动后的数组。
例如,输入n为5,m为2,依次输入5个整数1、2、3、4、5,则输出移动后的数组为4、5、1、2、3。