用递归的方式打印一个数的每一位。输入 :12345 ;输出:1 2 3 4 5

要求:输入12345 输出 1 2 3 4 5

代码如下:

void print(int n)
{
    if(n>9)   //  9 是一位数的最大位,n>9的意思是n 是两位数以上的数
    {
        print(n/10);    //    “/10” 是求商    这里递归执行完了 之后是将多位数化成一位数,这时跳出if条件语句,执行下一句   
    }
    printf("%d ",n%10);  //%10”  是取余    递归完了是剩下一位数,模10后输出,再返回到上一个递归模块,执行后输出第二位数字,以此类推...
}
int main()
{
    int n = 0;
    printf("请输入一个数:");
    scanf_s("%d",&n);
    print(n);

    system("pause");
    return 0;

}

执行结果:

这里写图片描述

过程

先执行 if 语句,
12345 / 10 = 1234
1234 / 10 = 123
123 / 10 = 12
12 / 10 = 1 ———–> 1 % 10 = 1
————————–> 12 % 10 = 2
————————– > 123 % 10 = 3
————————– > 1234 % 10 = 4
————————– > 12345 % 10 = 5

猜你喜欢

转载自blog.csdn.net/qq_41420688/article/details/80286711