用c++写 数组中的最大值(递归法)
时间: 2024-10-21 13:12:30 浏览: 41
在C++中,你可以使用递归来寻找数组中的最大值。递归是一种解决问题的方法,通过将问题分解成更小的同类问题来解决。下面是一个简单的例子,展示了如何递归地找到数组中的最大值:
```cpp
#include <iostream>
int findMax(int arr[], int size, int currentMax = INT_MIN) {
// 基线条件:如果数组只包含一个元素或者已经到达数组的最后,返回当前最大值
if (size == 1) {
return arr[0];
}
// 递归情况:比较当前元素与当前最大值,然后继续处理剩余的数组
else if (arr[size - 1] > currentMax) {
return findMax(arr, size - 1, arr[size - 1]);
} else {
return findMax(arr, size - 1, currentMax);
}
}
int main() {
int array[] = {5, 9, 2, 7, 1};
int n = sizeof(array) / sizeof(array[0]);
std::cout << "Array maximum value is: " << findMax(array, n) << std::endl;
return 0;
}
```
在这个函数中,`findMax`接受一个整数数组、数组大小以及一个默认为`INT_MIN`的当前最大值作为参数。在每次递归调用中,它都会检查是否达到了基本情况(只有一个元素),或者更新当前的最大值,直到遍历完整个数组。
阅读全文