十天学会C语言

第05天C语言(08):递归-基本概念

2017-07-07  本文已影响43人  liyuhong
一、概念
// 一般情况下,能用循环做的事情,用递归函数都能做
// 但是要注意 : 不是什么时候都使用递归,递归要慎用(性能问题)
// 什么是递归函数, 函数自己搞自己
// 注意: 递归一定要有一个明确的结束条件,否则会造成死循环(无限循环)
二、代码
#include <stdio.h>
void scanfNumber();
int main()
{
#pragma 1.需求: 要求用户输入一个大于0的数,如果用户输入的数不大于0 那么就一直重复的提醒输入重新输入,知道用户输入的值大于0为止
    /*
    int number = -1;
    
    while (number <0) {
        printf("请输入一个大于0的整数,以回车结束\n");
        scanf("%i",&number);
    }
    printf("number = %i\n",number);
    
     */
    scanfNumber();
    
    // text(); // 造成死循环(无限循环)
    return 0;
}

void scanfNumber()
{
    // 1.接收用户输入的值
    int number = -1;
    printf("请输入一个大于0的整数,以回车结束\n");
    scanf("%i",&number);
    
    
    // 2.判断用户输入的值是否合法
    if (number <0) {
        // 不合法,需要重新输入
        // 函数可以自己调用自己
        scanfNumber();
    }
    else
    {
        printf("number = %i\n",number);

    }
    
}
// 无限循环的递归
void text()
{
    printf("text\n");
    text();
}
上一篇 下一篇

猜你喜欢

热点阅读