本文介绍: 在PrintOut函数中,我们利用了取模方法来逐个获取字符。此时我们发现取模方法有其局限性,我们只有对一个小于10的数取模,方可直接获取该数位上的数字。因此我们想到了办法:在PrintOut函数里面调用一次PrintOut函数,直到该数字小于等于10,再进行取模。我们将这种在A函数里面重复调用A函数的行为,称为函数的递归,这种递归思想在程序设计当中十分重要。这里我们首先关注主函数定义int类型变量12345,并且将其传入了函数PrintOut

当我们输入一串整数,希望依次打印其值(一次一位)譬如输入“12345”,依次打印1,2,3,4,5。如何设计程序

解决这个问题方法十分多样,我们这里采取“递归思维进行设计

#include <stdio.h>

void PrintDigit(int n) {
    printf("%dn", n);
}

void PrintOut(int n) {
    if (n >= 10) {
        PrintOut(n / 10);
    }
    PrintDigit(n % 10);
}

int main() {
    int number = 12345;
    PrintOut(number);
    return 0;
}

这里我们首先关注主函数定义int类型变量12345,并且将其传入了函数PrintOut。

在PrintOut函数中,我们利用了取模方法来逐个获取字符。此时我们发现取模的方法有其局限性,我们只有对一个小于10的数取模,方可直接获取该数位上的数字。因此我们想到了办法:在PrintOut函数里面再调用一次PrintOut函数,直到该数字小于等于10,再进行取模

我们将这种在A函数里面重复调用A函数的行为,称为函数的递归,这种递归思想在程序设计当中十分重要。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注