<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # C 遞歸 > 原文: [https://www.programiz.com/c-programming/c-recursion](https://www.programiz.com/c-programming/c-recursion) #### 在本教程中,您將借助示例學習使用 C 編程編寫遞歸函數。 調用自身的函數稱為遞歸函數。 并且,這種技術稱為遞歸。 * * * ### 遞歸如何工作? ```c void recurse() { ... .. ... recurse(); ... .. ... } int main() { ... .. ... recurse(); ... .. ... } ``` ![How recursion works in C programming?](https://img.kancloud.cn/e1/08/e108ff240be4131e1de556cd3ea2b0af_500x420.png) 遞歸繼續進行,直到滿足某些條件以防止遞歸為止。 為了防止無限遞歸,可以在一個分支進行遞歸調用而另一分支不遞歸的情況下使用[`if...else`語句](/c-programming/c-if-else-statement "C if...else")(或類似方法)。 * * * ### 示例:使用遞歸的自然數之和 ```c #include <stdio.h> int sum(int n); int main() { int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; } int sum(int n) { if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; } ``` **輸出** ```c Enter a positive integer:3 sum = 6 ``` * * * 最初,從`main()`函數調用`sum()`,并以`number`作為參數傳遞。 假設`sum()`內的`n`的值最初為 3。 在下一個函數調用期間,將 2 傳遞給`sum()`函數。 該過程一直持續到`n`等于 0。 當`n`等于 0 時,`if`條件失敗,并且執行`else`部分,最終將整數和返回給`main()`函數。 ![Calculation of sum of natural number using recursion](https://img.kancloud.cn/78/0c/780c90706b7cc436efc5dc413d0454e8_571x1200.png) * * * ### 遞歸的優缺點 遞歸使程序優雅。 但是,如果性能至關重要,請使用循環代替,因為遞歸通常要慢得多。 話雖如此,遞歸是一個重要的概念。 它經常用于[數據結構和算法](/dsa "Data Structure and Algorithms")中。 例如,在諸如樹遍歷的問題中通常使用遞歸。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看