【发布时间】:2021-08-07 06:46:37
【问题描述】:
我需要编写一个递归函数,它从一个填充有整数的一维数组中返回最大值,最后一个值是 0(零),它标志着有用值的结束 的数组。它需要没有静态值,并且函数具有的唯一参数是指向数组的指针。该函数的默认结构类似于 - 整数最大值(整数 * arr); - 我尝试解决它,但我能想出的唯一解决方案是我需要多个参数才能从中获得最高值。 我想到了类似将一个值与数组中的下一个值进行比较,但我想不出如何返回最高值,示例如下。
int max(int* arr){
if(*(arr)!=0)
{
if (*(arr) > *(arr+1)){
return max(arr+1);
}else{
return max(arr);
}
}
return *(arr);
}
【问题讨论】:
-
嗨,欢迎来到 SO。请不要将代码发布为图片,这使得它很难工作。相反,将其作为文本发布。谢谢!
-
为什么需要使用递归?
-
这肯定是一道作业题。让别人为你解决问题,你不会学到任何东西。我给你一个提示。计算出 max 函数在每次调用时会查看什么,以及它将如何与从递归内部调用返回的 max 进行比较。想想它会如何结束。
-
我已经尝试了几个小时,感谢您的提示。我还修复了图像问题,对不起,我是 SO 新手。