一般做法:
#include<stdio.h>
int main()
{
unsigned int num = 0;
scanf("%d", &num);
int ge = num % 10;
int shi = num / 10 % 10;
int bai = num / 100 % 10;
int qian = num / 1000;
printf("%d %d %d %d", qian, bai, shi, ge);
return 0;
}
函数递归法:
代码思路:当n>9时,n就为两位数,打印时将这个数的个位拆开,直到n为一位数时
每一次都剥下来一个数字,直到不能剥为止
#include<stdio.h>
void print(int n)
{
if(n>9)
{
print(n/10);//反复调用直到n=12,调到printf函数
}
printf("%d ",n%10);
}
int main()
{
unsigned int num = 0;//unsigned表示无符整型
scanf("%d",&num);
print(num);
return 0;
}
递归的过程:递归顾名思义就是传递和回归
当使用递归时,先是传递过程,
假设n=123>9,调用print(n/10)来到一个新的起始点;
这时n/10=12>9,再调用print函数
n/10=1<9这时条件不成立就来到了printf函数,打印1%10也就是1;
这时传递过程结束,接下来就是回归,从哪里来回到哪里去;
打印完1%10之后回到上一次的print函数,这时print函数已经执行完毕,接下来打印12%10=2;
再回到上一层print函数,向后执行printf函数打印123%10=3;这时递归过程结束。
回到主函数中,return 0