gpt4 book ai didi

c++ - 递归查找元素 (c++)

转载 作者:搜寻专家 更新时间:2023-10-31 00:54:56 26 4
gpt4 key购买 nike

int searching(string arr [],int sizee,string element) {
static int location;
if(arr[sizee-1]==element) {
location = sizee;
return location;
}
else location = searching(arr, sizee-1, element);
}

我用过这个功能来搜索元素。

它适用于大小为 2 的数组,但不止于此,它给了我错误的位置。另外我想知道如何让它在找不到元素时返回 -1。

最佳答案

您的代码有一些错误/不需要的地方。最大的问题是当数组中不存在元素时,您没有停止条件。目前你只是负数并且访问具有负数索引的数组是未定义的行为。

另一个问题是位置。不需要。找到元素后,您只需直接返回位置即可。无需设置变量然后返回该变量。因此,进行这些更改会为您提供一个看起来像这样的功能

int searching(string arr [],int sizee,string element) {
if (sizee <= 0)
return -1; // we did not find the element in the array or the caller gave us a negative size
if(arr[sizee-1]==element)
return sizee-1; // just return the index you used
// no else needed here. Just return the result of calling the function recursively
return searching(arr, sizee-1, element);
}

关于c++ - 递归查找元素 (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43660046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com