有n个整数,编写一个C语言程序,使前面各数顺序向后移m个位置,最后m个数变成最前m个数 。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个整数。(要求输出的代码包含主函数部分)
时间: 2023-12-20 12:53:59 浏览: 77
以下是实现要求的代码:
```c
#include <stdio.h>
#define MAX 100
void shift(int arr[], int n, int m) {
int temp[MAX];
for (int i = 0; i < n; i++) {
temp[(i + m) % n] = arr[i];
}
for (int i = 0; i < n; i++) {
arr[i] = temp[i];
}
}
int main() {
int n, m, arr[MAX];
printf("Enter n: ");
scanf("%d", &n);
printf("Enter %d integers: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("Enter m: ");
scanf("%d", &m);
shift(arr, n, m);
printf("Shifted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
该程序中,`shift`函数将数组中的元素向后移动m个位置,最后m个数变成最前m个数。具体实现是创建一个临时数组,遍历原数组,将元素存储到临时数组的正确位置。最后再将临时数组中的元素复制回原数组。
在主函数中,首先输入n、数组元素和m。然后调用`shift`函数,将数组中的元素进行移动。最后输出移动后的数组。
阅读全文