c语言编程:输入n个整数,使前面的n-m个数顺序向后移动m个位置,最后的m个数变成最前面的m个数。通过函数实现以上的功能。
时间: 2024-05-11 17:18:49 浏览: 57
以下是实现该功能的 C 语言代码:
```c
#include <stdio.h>
void shift_array(int arr[], int n, int m) {
int i, temp;
for (i = n - m; i < n; i++) { // 将后 m 个数保存到临时数组中
temp = arr[i];
arr[i] = arr[i - n + m];
arr[i - n + m] = temp;
}
}
int main() {
int n, m, i;
printf("请输入数组长度 n 和移动位置 m:");
scanf("%d%d", &n, &m);
int arr[n];
printf("请输入 %d 个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]); // 输入数组元素
}
shift_array(arr, n, m); // 移动数组
printf("移动后的数组:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]); // 输出移动后的数组
}
return 0;
}
```
该代码定义了一个 `shift_array` 函数,用于实现数组移动的功能。主函数中首先从用户输入中获取数组长度 `n` 和移动位置 `m`,然后使用循环获取数组元素,并将数组传递给 `shift_array` 函数进行移动。最后输出移动后的数组。
例如,如果用户输入数组长度为 6,移动位置为 2,元素分别为 1、2、3、4、5、6,则程序输出:
```
请输入数组长度 n 和移动位置 m:6 2
请输入 6 个整数:1 2 3 4 5 6
移动后的数组:5 6 1 2 3 4
```