在 C 语言中,如何随时退出递归函数

发布于 科技 2024-05-15
12个回答
  1. 匿名用户2024-01-28

    exit() 是退出整个程序,函数后的任何 ** 都不会被执行。

    随时退出一个递归函数,要么直接返回不再调用自己,要么设置一个返回值,告诉上一个函数不要再调用这个函数

    至于goto语句,它可能不起作用,goto语句似乎只在函数内部使用

  2. 匿名用户2024-01-27

    我在编程的时候遇到过这个问题,不知道师傅是怎么做到的,我当时的做法是设置一个变量作为终止条件,一旦变量达到某个值,函数就退出,我想退出的时候,我就把变量设置到一个特定的值,以此类推。 虽然我使用 Pascal,但 C 是一样的。

    PS:Goto绝对不是。

  3. 匿名用户2024-01-26

    exit 函数存在于头文件中。

    但是,由于使用率高,它可以在不包含头文件的情况下使用。

    exit(1) 将程序退出回到 C 状态。

    exit(0) 退出程序并返回到操作系统状态。

  4. 匿名用户2024-01-25

    让我们使用 go to 语句!

    虽然不符合软件工程的思路,但少量的应用也非常有效!

  5. 匿名用户2024-01-24

    根据具体情况,有很多方法可以做到这一点。 一般来说,递归函数只有在满足一定的初始条件后才必须撤回,随时退出都违背了递归函数的初衷,不是解决问题的好方法。

  6. 匿名用户2024-01-23

    设置条件,然后使用 goto(); 就是这样。

  7. 匿名用户2024-01-22

    递归函数定义:在编程语言中,函数 func() 直接或间接调用函数本身,则该函数称为递归函数。 递归函数不能定义为内联函数。

    从数学上讲,递归函数的定义如下:对于一个函数 f(x),其域是集合 a,那么如果对于 a 集合中的值 x0,则函数的值 f(x0) 由 f(f(x0)) 确定,则 f(x) 称为递归函数。

    由于递归函数不断调用自己的特征,因此它必须使用边界条件约束来退出递归并停止迭代,否则它是一个不断增加的循环。

    在 C 中,通常使用返回值; 其中 value 是返回值,对于没有返回值的函数,return 就足够了。

    在 C 语言中,如果要直接终止整个递归,包括主程序,可以使用 exit() 函数来终止它。

  8. 匿名用户2024-01-21

    递归是对递归关系的模拟;

    你的问题,有什么样的递归结构,在什么情况下,不需要递归,可以直接得出结论。

    考虑到这些事情,你就可以开始写作了。

    这样的**自然是作为递归函数实现的,是最方便的。

    1)能直接解决问题的那种情况,自然是直接回报的条件。

    2)需要递归求解的那种,自然是递归写和调用的。

    3)那种实用的、执行的**,自然是夹在递归调用之间,写出来的。

    编写递归函数,主要分析,1)何时结束。

    2)何时递归调用。

    3)将任务的**写在**中。

    递归调用本身并不能解决实际问题。 这只是解决复杂结构问题的一种方式。

    在解决实际问题时,结合正在执行的任务写**。

    例如,树木的遍历。

    递归只是一个框架,它执行遍历是做什么的,比如打印节点数据,这是递归函数的任务。

    当一个框架放在一起时,它可以解决许多具有相同结构的问题。

    但是,空的框架并不能解决任何问题。 再好,也没用。

  9. 匿名用户2024-01-20

    您需要设置退出条件,例如:

    f(int i)

    这样,当我递减到 0 时,它不会继续递归。

  10. 匿名用户2024-01-19

    为递归函数中的键变量设置阈值条件。

  11. 匿名用户2024-01-18

    如果只有一个磁盘,请直接将其从 1 个移动到 3 个; 如果有 n 个磁盘,假设有 n-1 个可以知道如何移动的磁盘,那么将上面的 n-1 个磁盘从 1 个移动到两个,然后将底部的 n 个磁盘从 1 个移动到 3 个,最后将剩余的 n-1 从两个移动到三个。 问题解决了。

    对于 n-1 可以用 n-2 求解,依此类推,直到 2 个磁盘可以依靠 1 个磁盘的解,当达到 1 个磁盘时,就给出了解。 这就是递归的思想,类似于数学的归纳。

  12. 匿名用户2024-01-17

    事实上,当我第一次学习C语言时,河内塔的递归似乎确实是一个相当神奇的程序。

    最主要的是HANOI的递归函数,参数中有一个n,表示递归的几层。

    如果 n=1 表示只有一个,则移动(一,三); 只需将第一个移动到第三个即可。 否则。

    第一根柱子上有 n (n>1) 移动到第三根柱子。 您需要将顶部的 n-1 移动到第二个,将底部的 n-1 移动到第三个,将第二个柱子上的 n-1 移动到第三个。 这三个步骤。

    第一个和第三个实际上和他们自己是一样的。

    就是把n-1移到第二个,注意河内的参数。

    定义 HANOI 函数,在 2* 的帮助下将 N 个磁盘从 1 个移动到 3 个

    two 是第二个参数,用于帮助。

    假设 n=2 河内(2,'a','b','c');成为。

    hanoi(1,a,c,b);这意味着A区块上有一块,需要借助 C区块移动到B区。

    a---chanoi(1,b,a,c);这意味着B区有一个棋子,需要借助A区块将其移动到C区。

    最后,它将被输出。

    a-->b

    a-->c

    b-->c

    假设 n=3 河内(3,'a','b','c');

    hanoi(2,a,c,b);这意味着A块上有两块,需要借助C块移动到B块。

    a---chanoi(2,b,a,c);这意味着B块上有两块,需要借助A块移动到C块。

    A块上有两块,需要移动到C块,移动到B块时会输出。

    a-->c

    a-->b

    c-->b

    B块上有两块,需要借助A块移动到C块。

    b-->a

    b-->c

    a-->c

相关回答
16个回答2024-05-15

递归:是自我调整,但是会有无穷无尽的循环而不终止条件,所以你的递归**有一个条件来结束自调优,这样就产生了有限数量的循环(你看不到for或foreach,但有循环发生)。

7个回答2024-05-15

我调试了它,修复了一些逻辑错误,并在程序运行后添加了暂停。 >>>More

6个回答2024-05-15

#include

void main(void) >>>More

7个回答2024-05-15

最后以一个经典的小游戏---贪吃蛇,在这个游戏中,我们用到了很多基本的C语言知识,但也用到了一些常见的数据结构,包括数组、结构体、枚举等。 >>>More