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);
    }
}

    原文作者:liyuhong165
    原文地址: https://www.jianshu.com/p/6cd09218ea94
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞