在 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