把数组中各元素倒转,原数组A的值为1,2,3,4 倒转后为4,3,2,1 用递归写出此函数。 c++
时间: 2024-09-29 19:15:27 浏览: 13
在C++中,我们可以使用递归来实现数组元素的倒转。下面是一个示例代码:
```cpp
#include <iostream>
using namespace std;
void reverseArray(int arr[], int start, int end) {
if (start >= end) {
return; // 如果数组已经倒转完毕,则递归结束
}
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverseArray(arr, start + 1, end - 1); // 递归调用,继续倒转数组
}
int main() {
int arr[] = {1, 2, 3, 4};
int n = sizeof(arr) / sizeof(arr[0]);
reverseArray(arr, 0, n - 1); // 从数组的第一个元素开始倒转
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
这个程序中的`reverseArray`函数使用递归方式将数组中各元素倒转。如果当前数组的起始和结束索引之间没有元素,那么递归就会结束。否则,它将交换起始和结束索引处的元素,并递归调用自身,继续倒转数组。在主函数中,我们定义了一个数组并调用`reverseArray`函数将其倒转。最后,我们打印出倒转后的数组元素。
注意:在C++中,数组的索引是从0开始的,因此当递归到数组的最后一个元素时,它的索引应该是`n-1`。此外,这个递归算法的时间复杂度为O(n),其中n是数组的长度。