递归查找数组中最大元素的巧妙方法

标签 c recursion

我知道递归不是完成我在标题中描述的操作的最佳方法,但它是一个练习。我想知道是否有任何方法可以在以下条件下递归地(在 C 中)找到数组中的最大值:

  • 不允许使用静态变量;
  • 如果第一个元素作为参数传递,那么在主 block 的编写者不实际执行它的情况下这样做会很酷(例如,编写者传递数组和数组的维度,但函数使用 array[dim-1] 作为第一个最大值)

感谢您的解答!

最佳答案

基本思想是认识到数组的最大值是第一个元素和删除第一个元素的子数组的最大值中的较大者。

然后对子数组调用 max 函数来获取该数组的最大值。 (我会让你编写其余的代码。)

关于递归查找数组中最大元素的巧妙方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25447931/

相关文章:

c - 使用 SO_REUSEADDR - 之前打开的套接字会发生什么?

java - Jackson 无限递归处理查询

sql - 您如何获得递归 CTE 中生成的最后一条记录?

java - 如何将带有 while 循环的程序转换为递归?

c - NCurses 聊天行为不当,阻止选择

c - 声明许多函数使用的变量的适当位置?

c - 在c编程中将字符串标记为所需长度?

c++ - 如何在不增加 RAM 使用率或 CPU 使用率的情况下绘制图 block map ?

c - 在c中显示递归结构

Haskell 递归以 'do' 表示法