用+n+个数,使前面各数顺序向后移+m+个位置,最后+m+个数变成最前面+m+个数。 在+main+中输入+n+个数和输出调整后的+n+个数。(递归算法)C语言
时间: 2023-12-30 08:05:32 浏览: 19
```c
#include <stdio.h>
void move(int *nums, int n, int m);
int main() {
int n, m;
printf("输入n个整数,再输入m,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数\n");
printf("请输入n和m:");
scanf("%d%d", &n, &m);
int nums[n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
move(nums, n, m);
printf("调整后的%d个数为:", n);
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
return 0;
}
void move(int *nums, int n, int m) {
if (m <= 0 || m >= n) {
return;
}
int temp[m];
for (int i = n - m; i < n; i++) {
temp[i - n + m] = nums[i];
}
for (int i = n - m - 1; i >= 0; i--) {
nums[i + m] = nums[i];
}
for (int i = 0; i < m; i++) {
nums[i] = temp[i];
}
}
```
阅读全文