PTA数组元素循环右移问题
时间: 2023-08-09 22:06:54 浏览: 124
数据结构之数组循环右移
你好!对于PTA数组元素循环右移的问题,我可以为你提供一些解决方案。要将一个数组循环右移k个位置,可以采取以下步骤:
1. 将数组的后k个元素保存在一个临时数组中。
2. 将数组中的前n-k个元素向后移动k个位置。
3. 将临时数组中的元素放回原数组的前k个位置。
以下是一个示例代码:
```C++
#include <iostream>
using namespace std;
void rotateRight(int arr[], int n, int k) {
int temp[k];
for (int i = 0; i < k; i++) {
temp[i] = arr[n - k + i];
}
for (int i = n - k - 1; i >= 0; i--) {
arr[i + k] = arr[i];
}
for (int i = 0; i < k; i++) {
arr[i] = temp[i];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int k = 2;
rotateRight(arr, n, k);
cout << "Array after right rotation: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
这段代码将数组 `{1, 2, 3, 4, 5}` 循环右移2个位置,输出结果为 `4 5 1 2 3`。你可以根据需要修改数组的初始值和右移的位置。希望这可以帮助到你!如果有任何问题,请随时问我。
阅读全文