如何用C++的递归函数实现将输入数组A中N个数按照逆序输出的功能?数组A的元素数量和具体数值会在输入中给出,请提供相应的递归算法示例代码以及输出样例说明。
时间: 2024-10-28 16:12:36 浏览: 14
在C++中,你可以使用递归函数结合指针技巧来实现数组逆序。以下是一个简单的示例:
```cpp
#include <iostream>
void reverseArrayRecursively(int* arr, int start, int end) {
// 基础情况:如果start等于end,表示已经到达数组中心,无需交换
if (start >= end) {
return;
}
// 交换start和end位置的元素
std::swap(arr[start], arr[end]);
// 继续递归处理剩余部分
reverseArrayRecursively(arr, start + 1, end - 1);
}
int main() {
int N; // 输入数组长度
std::cout << "请输入数组的长度: ";
std::cin >> N;
int A[N]; // 输入数组
for (int i = 0; i < N; i++) {
std::cout << "请输入第" << i+1 << "个元素: ";
std::cin >> A[i];
}
std::cout << "原始数组: ";
for (int i = 0; i < N; i++) {
std::cout << A[i] << " ";
}
reverseArrayRecursively(A, 0, N - 1);
std::cout << "\n逆序后的数组: ";
for (int i = 0; i < N; i++) {
std::cout << A[i] << " ";
}
return 0;
}
```
例如,如果你输入`5`作为数组长度,并依次输入`1, 2, 3, 4, 5`,程序会首先打印原始数组`1 2 3 4 5`,然后逆序后变为`5 4 3 2 1`。
阅读全文