有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一函数实现以上功能。主函数中输入n个整数,调用函数,输出调整后的n个数。 输入 第一行,输入的整数个数n 第二行,n个整数 第三行,移动的位数m 输出 输出移动后的n个整数 样例查看模式 正常显示 查看格式 输入样例1 <-复制 8 12 43 65 67 8 2 7 11 4 输出样例1 8 2 7 11 12 43 65 67 输入样例2 <-复制 5 1 2 3 4 5 1 输出样例2 5 1 2 3
时间: 2024-03-10 13:47:38 浏览: 35
好的,下面是实现该功能的C++代码:
```cpp
#include <iostream>
using namespace std;
void move(int arr[], int n, int m) {
int tmp[m];
for (int i = 0; i < m; i++) {
tmp[i] = arr[n-m+i];
}
for (int i = n-m-1; i >= 0; i--) {
arr[i+m] = arr[i];
}
for (int i = 0; i < m; i++) {
arr[i] = tmp[i];
}
}
int main() {
int n, m;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
cin >> m;
move(arr, n, m);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
解释一下代码,我们定义了一个名为`move`的函数来实现数组的移位操作。函数的参数包括待移位的数组`arr`、数组长度`n`和移动的位数`m`。在函数中,我们首先使用一个名为`tmp`的数组来暂存最后`m`个数,然后将数组中前`n-m`个数向后移动`m`位,最后将暂存的`m`个数放到数组的最前面。
在主函数中,我们首先读入数组长度`n`和数组元素,然后读入移动的位数`m`。接着调用`move`函数进行数组移位操作,最后输出移动后的数组元素。
希望能解决你的问题。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)