#include<stdio.h>
#include<math.h>
int digits(int n)//求n的位数
{
int i=0;
while (n!=0)
{
n/=10;
i++;
}
return i;
}
void PrintFigures(int n)//正序输出n的各个位上的数字
{
printf("这个数的各位是:");
int fig=digits(n);
int power=pow(10.0,fig-1);
while(n!=0)
{
printf("%d ",n/power);
n%=power;
power/=10;
}
printf("\n");
}
void PrintReverse(int n)//逆序输出各位上的数字
{
printf("这个数的逆序为:");
while(n!=0)
{
printf("%d ",n%10);
n/=10;
}
printf("\n");
}
void FigToStr1(int n)//相当于正序输出某个数字
{
int fig=digits(n);
int power=pow(10.0,fig-1);
int tmp;
printf("数字转字符:");
while(n!=0)
{
tmp=n/power;
printf("%c ",tmp+48);
n%=power;
power/=10;
}
printf("\n");
}
void FigToStr2(int n)//**用递归的算法**
{
int tmp=n%10;
n/=10;
if(n!=0)
FigToStr2(n);
printf("%c",tmp+48);
}
int main()
{
int n=12345;
PrintFigures(n);
PrintReverse(n);
FigToStr1(n);
FigToStr2(n);
printf("\n");
return 0;
}
运行结果如下: