有n个整数,使前面各数顺序向后移m个位置,最后的m个数变成最前面的m个数,写一个函数实现上述功能,在主函数中输入n个整数和输出调整后的n个数。
时间: 2023-04-25 08:05:40 浏览: 84
可以使用循环和数组来实现该功能。具体步骤如下:
1. 定义一个数组,用来存储输入的n个整数。
2. 定义一个变量m,表示需要向后移动的位置数。
3. 使用循环将数组中前面的n-m个数向后移动m个位置,将后面的m个数移到数组的最前面。
4. 输出调整后的n个数。
以下是示例代码:
```
#include <stdio.h>
void move(int arr[], int n, int m) {
int temp[m];
// 将后面的m个数移到数组的最前面
for (int i = ; i < m; i++) {
temp[i] = arr[n - m + i];
}
// 将前面的n-m个数向后移动m个位置
for (int i = n - m - 1; i >= ; i--) {
arr[i + m] = arr[i];
}
// 将temp中的m个数放到数组的最前面
for (int i = ; 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 = ; i < n; i++) {
scanf("%d", &arr[i]);
}
move(arr, n, m);
printf("调整后的%d个数为:", n);
for (int i = ; i < n; i++) {
printf("%d ", arr[i]);
}
return ;
}
```
阅读全文