递归方式实现打印一个整数的每一位

时间:2021-04-25 00:50:53
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int fun(int a)
{
if (a > 9)
fun(a / 10);//递归方式
printf("%d ", a%10);//a%10就是小于10就%10出来---递归出口
}
/*比如123,123/10=12,12/10=1,1%10=1。1首先被打印出来,因为是递归出口,
1出来后,12%10=2出来,再后面123%10=3出来。按着递归函数形参变化逆顺序计算并输出*/
int main()
{
/*递归方式实现打印一个整数的每一位*/
/*递归就是把大事化小,大问题编程小问题,每次递归都不断接近限制条件。
所以,大事化小、递归出口是关键思考点。先思考递归方式和出口。*/
while (1)
{
int a = 0;
printf("请输入一个整数:>");
scanf("%d", &a);
fun(a);
printf("\n");
}
return 0;
}

递归方式实现打印一个整数的每一位