有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前m个数 (如下图所示)。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个整数。
时间: 2023-12-20 21:10:20 浏览: 33
好的,这是一个数组的操作问题,我们可以先将数组的前 n-m 个元素逆序排列,再将后 m 个元素逆序排列,最后将整个数组逆序排列。这样操作完后,就能得到要求的结果。
以下是实现这个功能的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
void reverse(int arr[], int left, int right) {
while (left < right) {
swap(arr[left], arr[right]);
left++;
right--;
}
}
void rotate(int arr[], int n, int m) {
reverse(arr, 0, n - m - 1);
reverse(arr, n - m, n - 1);
reverse(arr, 0, n - 1);
}
int main() {
int n, m;
cout << "请输入n和m:";
cin >> n >> m;
int arr[n];
cout << "请输入" << n << "个整数:";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
rotate(arr, n, m);
cout << "调整后的" << n << "个整数为:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
注意,这里的数组下标从 0 开始,而题目中的数组下标从 1 开始,需要注意转化。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)