我知道递归不是完成我在标题中描述的操作的最佳方法,但它是一个练习。我想知道是否有任何方法可以在以下条件下递归地(在 C 中)找到数组中的最大值:
- 不允许使用静态变量;
- 如果第一个元素作为参数传递,那么在主 block 的编写者不实际执行它的情况下这样做会很酷(例如,编写者传递数组和数组的维度,但函数使用
array[dim-1]
作为第一个最大值)
感谢您的解答!
最佳答案
基本思想是认识到数组的最大值是第一个元素和删除第一个元素的子数组的最大值中的较大者。
然后对子数组调用 max 函数来获取该数组的最大值。 (我会让你编写其余的代码。)
关于递归查找数组中最大元素的巧妙方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25447931/