有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数,用c语言
时间: 2024-04-30 10:24:57 浏览: 116
以下是一种C语言实现方式:
```c
#include <stdio.h>
void shift(int arr[], int n, int m) {
int temp[m];
// 将数组的后m个元素存储到临时数组中
for (int i = 0; i < m; i++) {
temp[i] = arr[n - m + i];
}
// 将数组中前n-m个元素向后移动m个位置
for (int i = n - 1; i >= m; i--) {
arr[i] = arr[i - m];
}
// 将临时数组中的m个元素放到数组的前面
for (int i = 0; i < m; i++) {
arr[i] = temp[i];
}
}
int main() {
int n, m;
printf("请输入数组长度n和移动的位置m:");
scanf("%d%d", &n, &m);
int arr[n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
shift(arr, n, m);
printf("移动后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
该程序先输入数组长度n和移动的位置m,然后输入n个整数,调用shift函数进行移动操作,最后输出移动后的数组。shift函数的实现方法是:先将数组的后m个元素存储到临时数组中,然后将数组中前n-m个元素向后移动m个位置,最后将临时数组中的m个元素放到数组的前面。
阅读全文