Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >递归函数中的返回语句

递归函数中的返回语句
EN

Stack Overflow用户
提问于 2020-01-20 23:15:52
回答 1查看 41关注 0票数 0

我正在尝试编写一个递归函数,用于在数组中进行线性搜索,它还会返回找到元素的第一个索引。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int linearSearch(int *A, int size, int val)
{
    if(size>0)
    {
        if(*A==val)
        {
            cout<<val<<" is found in the array!";
            return i;
        }
        else
        {
            linearSearch(A+1,size-1,val);
            i++;
        }
    }
    else
    {
        cout<<val<<" is not there in the array!";
        return -1;
    }
}

但是,当我试图捕获main函数中返回的值时,当元素不存在于数组中时,返回size的值而不是-1。我不知道为什么会发生这种情况。

EN

回答 1

Stack Overflow用户

发布于 2020-07-08 13:47:01

尝尝这个。我在代码中添加了一些注释,这样您就可以更好地理解它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* i is the initial position. When you are making a call to linearSearch it should be set to 0 */
int linearSearch(int *A, int size, int val, int i)
{
    /* When you reach end of the array and havent found value, then return -1 */
    /* Every recursive function should have an exit condition */
    if(i == size)
        return -1;

    /* when we found a value return the index */
    if (A[i] == val)
        return i;
    else
        /* If not then move to the next value in the array by incrementing index and recurse */
        return linearSearch(A, size, val, i + 1);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59832129

复制
相关文章
利用递归函数的返回值
路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
宇宙之一粟
2020/10/26
1.7K0
php递归函数返回值返回不出的问题
发现无论如何,函数的打印结果是正确的,到return的时候只能打印一个null,一直改都没法解决
仙士可
2019/12/18
4.5K0
python中的递归函数
递归的定义: 在函数内部直接或者间接调用函数本身 递归的应用: △求一个数的阶乘 1 def jiecheng(n): 2 if n == 1: 3 return 1 4 else: 5 return n*jiecheng(n-1) 6 print(jiecheng(4)) △求第几个斐波那契数 1 def f(n): 2 if n == 2: 3 return 1 4 elif n ==1: 5 return
人生不如戏
2018/04/11
1.9K0
递归函数实现返回组成它数字之和
例如:调用DigitSum(1729),返回 sum=1+7+2+9 #include<stdio.h> #include<stdlib.h> int DigitSum( int num ){ int s=0; if(num>9){ DigitSum(Num/10); }return s+=num%10; } int main(){ int a; a=DigitSum(1729); printf("%d",a); system("pause"); return 0; }
小雨的分享社区
2022/10/26
4410
2018-7-18pythoh中函数的参数,返回值,变量,和递归
************************************************************************************                                  函数中的参数的初级和返回值: 技术文档中[]方括号里面的东西表示可选的 参数:函数运行需要的数据   如果没有参数会提示:missing 1 required positional,
武军超
2018/09/27
2.1K0
带返回值的函数,闭包,沙箱,递归详解
那了解了函数 this 指向的不同场景之后,我们知道有些情况下我们为了使用某种特定环境的 this 引用, 这时候时候我们就需要采用一些特殊手段来处理了,例如我们经常在定时器外部备份 this 引用,然后在定时器函数内部使用外部 this 的引用。 然而实际上对于这种做法我们的 JavaScript 为我们专门提供了一些函数方法用来帮我们更优雅的处理函数内部 this 指向问题。 这就是接下来我们要学习的 call、apply、bind 三个函数方法。
Dream城堡
2018/10/09
1.9K0
JS中递归函数 18
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <bo
贵哥的编程之路
2020/10/28
2.1K0
Kotlin中尾递归函数
上面函数将调用自身作为其执行体的最后一行代码,且递归调用后没有更多代码,因此可 以将该函数改为尾递归语法。此时,上面函数可改为如下形式
对话、
2022/02/22
8210
Python 递归函数返回值为 None 的解决办法
在使用 Python 开发的过程中,避免不了会用到递归函数。但递归函数的返回值有时会出现意想不到的情况。
AlwaysBeta
2022/03/15
7180
python中函数递归VS循环
可以理解为在定义的函数内部调用函数自己,形成一个回路。既然形成了一个回路,那么必须要有一个退出的方式。而这种退出的方式一般都是采用条件判断来实现的。
刘金玉编程
2019/08/01
1.7K0
python中函数的返回值详解
在本小节刚开始的时候,说过的“买烟”的例子中,最后儿子给你烟时,你一定是从儿子手中接过来 对么,程序也是如此,如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存
Python学习者
2023/03/27
3.3K0
递归函数[通俗易懂]
当然,你可以尝试会发生什么结果,理论上会永远运行下去,但实际操作时发现不一会儿程序就报错了,因为每次调用函数都会用掉一点内存,在足够多的函数调用发生后,空间几乎被占满,程序就会报错。
全栈程序员站长
2022/09/07
7140
递归函数[通俗易懂]
递归函数
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。
大忽悠爱学习
2021/03/04
7060
递归函数
这里使用的是命名函数表达式的方法实现递归,将这个函数赋值给 factorial 。这样即使在使用过程中对变量进行修改,也不会影响已赋值的递归函数进行调用,保证了代码的安全性。这种方式在严格模式和非严格模式下都适用。
就只是小茗
2018/12/12
7750
递归函数的优化
为什么会出现这种问题呢?原因就出在return num*factorial(num-1)这一句上,这种写法使得函数太过紧密,一旦将函数保存到另一个变量中,并将原变量设置为null,factorial便不再是函数,因此会报错。
IMWeb前端团队
2019/12/03
7060
JavaScript 函数中带有参数并返回值的函数
document.getElementById("demo").innerHTML=myFunction(4,3);
好派笔记
2021/09/18
5.7K0
Python 函数的递归
函数的递归 什么是递归函数 一个函数不停的将自己反复执行 递归的定义方法 通过返回值 直接执行自身函数 递归函数的说明 内存溢出 避免滥用递归 代码 # coding:utf-8 count = 0 def test(): global count count += 1 if count < 5: print('count条件不满足, 我要重新执行我自己! 当前count是%s' % count) return test() else:
Zkeq
2022/05/18
6450
python函数中 return语句 之
return语句用于退出函数,向调用方返回一个表达式。return在不带参数的情况下(或者没有写return语句), 默认返回None。None是一个特殊的值,它的数据类型是NoneType。NoneType是Python的特殊类型,它只有一个取值None。 它不支持任何运算也没有任何内建方法,和任何其他的数据类型比较是否相等时永远返回false,也可以将None赋值给任何变量。。。
py3study
2020/01/06
8930
工作中递归返回多层级josn数据
集合转数组的toArray()和toArray(T[] a)方法 下面代码是jdk ArrayList中的源码
技术从心
2019/08/06
7170
自动化测试中递归函数的应用
本人在做自动化测试的时候,有时候会遇到需要登录特定帐号进行测试,但可能已经登录了其他帐号了,导致用例失败的问题。所以需要在验证登录的时候再做一个判断,在修改代码的时候,突然想起了递归函数,复习了一下,尝试之后感觉很省事儿,特别方便。分享一下代码,供大家参考。
FunTester
2019/08/06
9120

相似问题

Python递归函数,返回if语句

20

递归函数缺失返回语句

24

不带返回语句的递归函数

15

Uncaught :递归函数中的非法返回语句

12

递归函数不会进入返回语句

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文