有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。编写一函数实现上述能,在主函数中输入n个整数,并输出调整后的n个数。用c.
时间: 2024-05-15 20:13:15 浏览: 33
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数.
以下是实现代码:
```c
#include <stdio.h>
void shift(int arr[], int n, int m);
int main() {
int n, m, i;
int arr[100];
printf("请输入n和m:\n");
scanf("%d%d", &n, &m);
printf("请输入%d个整数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
shift(arr, n, m);
printf("调整后的%d个数为:\n", n);
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void shift(int arr[], int n, int m) {
int i, j, tmp;
for (i = 0; i < m; i++) {
tmp = arr[n - 1];
for (j = n - 1; j > 0; j--) {
arr[j] = arr[j - 1];
}
arr[0] = tmp;
}
}
```
其中,shift函数实现了数组循环移位的功能,主函数中先输入n和m,再输入n个整数,调用shift函数实现循环移位,最后输出调整后的n个数。
阅读全文