C語言day05-08遞歸的基本概念

pragma mark 遞歸的基本概念

pragma mark 概念

/**
  什么是遞歸函數 : 函數自己調用自己
 */
  使用場景:面試、尋找文件夾的文件

pragma mark 代碼

#include <stdio.h>
void text();
void scanfNumber();
int main(int argc, const char * argv[])
{
    // 需求:要求用戶輸入一個大于0的數,如果用戶輸入的數不大于0\
    那么就一直重復的提醒輸入更新輸入,直接用戶輸入的值大于0位置
    /*
    int number = -1;
    while (number < 0) {
        printf("請輸入一個大于0的整數,以回車結束\n");
        scanf("%i",&number);

    }
    
    printf("number = %i\n",number);
    */
    // 一般情況下,能用循環做得事情,用遞歸函數都能做
    // 但是要注意: 不是什么時候都使用遞歸,遞歸要慎用
    
    // 什么是遞歸函數 : 函數自己調用自己
//    scanfNumber();
    
    // 注意:遞歸一定要有一個明確的結束條件,否則會造成死循環(無限循環)
    text();
    return 0;
}
#pragma mark 遞歸 死循環
void text()
{
    printf("text\n");
    text();
}

void scanfNumber()
{
    // 1.結束用戶輸入的值
    int number = -1;
    printf("請輸入一個大于0的整數,以回車結束\n");
    scanf("%i",&number);
    
    // 2.判斷用戶輸入的值是否合法
    
    if (number < 0) {
        // 不合法,需要重新輸入
        // 函數可以自己調用自己
        scanfNumber();
    }
    else
    {
        printf("number = %i\n",number);
    }
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容