我正在学习c并编写一个递归函数来查找数组中的最小值。该函数被赋予一个整数数组和两个索引:low和high(low
这是一项家庭作业,我花了几个小时研究如何找到工作。程序返回“线程断点”,我感觉我在正确的轨道上,但可能缺少一些东西。如果有人能给我指出正确的方向,或者给我一个提示,告诉我我做错了什么。谢谢
int minInArray2(int *arr, int low, int high) {
int size = sizeof(*arr);
int temp;
low = arr[0];
high = sizeof(arr - 1);
if (size == 0) {
return arr[0];
}
if (low < high) {
temp = low;
low = high;
high = temp;
}
return minInArray2(arr, low, high);
}
许多错误。
int size = sizeof(*arr); will give `sizeof(int)` You want `sizeof(arr)`
仍然不需要尺寸。
下一个
low = arr[0]; // Not Needed because you pass these value from function.
high = sizeof(arr - 1);//
接下来这个
if (low < high) {
temp = low;
low = high;
high = temp;
}
根本不需要。您可以在传递时交换变量。如minInArray2(arr、高、低) //注意参数
最后是递归问题
看看这个
int minInArray2(int *arr, int low, int high) {
if(low>high) //Your case when low greater than high
{
return minInArray2(arr,high,low); // Just pass high first and then low
}
if(low==high) //Condition to come out of recursion
return arr[low];
int temp = minInArray2(arr,low+1,high); //Call function again and again
//always with incremented low's value at each recursion
if(arr[low]<temp) //compare and return the least among 2
return arr[low];
else
return temp;
}
问题内容: 对于需要解决的问题之一,我使用for循环找到了数组的最大值,因此我尝试使用递归找到它,这就是我想出的: 因此它可以正常工作并获取最大值,但是我的问题是:对于基本情况,返回a [head]以及对于在开头处的值大于最后一个值的情况,可以吗? 问题答案: 您只需一个计数器即可轻松完成此操作,只需使用您这次想要比较的值的索引即可: 这样可以更好地显示正在发生的情况,并使用默认的“递归”布局,例
我正在尝试优化一个函数,给定一个N int数组,它返回一个元素和前一个元素之间的最小差异。显然,该函数仅适用于具有维度的数组 不知道有没有办法避免在main中传递第一个差,而是在递归函数中做所有的事情。我可以用stdio . h/stdlib . h/string . h/math . h作为头文件。非常感谢你的帮助,我希望这能让我对递归函数有更好的理解。
那么我如何使用这个pair类和我的方法来找到最小值和最大值。
问题内容: 我正在尝试在数组中找到数字的最小值,但并非总是能正常工作。这是我写的代码: 有人可以纠正我吗? 问题答案: 不需要外部循环,它只运行一次,并且无论如何您都不会使用。你为什么有它? 对于内部循环,您需要与最小值进行比较。现在,您正在将其与数组中的第一个元素(不一定是最小值)进行比较。 另外,您可以从1开始循环,因为您不需要与自身进行比较(它只分配给)
我试图递归地在二叉树中找到最小值(不是二叉查找树)。让我困惑的是基本情况。如果TreeNode t为空,返回什么?因为我将使用返回的值将其与当前的最小值进行比较(我认为),我相信我返回的内容很重要。
我需要编写一个递归方法,它需要两个并行数组和单词来查找,查找指定的单词并在另一个数组上每次索引匹配时求和值。例如: 如果我说我需要查找单词,它应该在找到索引时对第二个数组上的值求和。在这种情况下,它应该求和,。 如何使我的递归方法使其采用适当的参数并递归地进行计算。我将使用硬编码值。 这是我目前所拥有的。我很确定我的递归方法需要更多参数,但我会看看是否有人能帮助我