1、很容易想到的就是,取余法
- 先判断取余是否完成了
- 没完成,即剩下的数字n>9
- 新取出一位=n%10
- n/=10
- 继续循环
- 实现代码:
include<stdio.h>
int* digit(int x)
{
static int dig[100]={0},i=0;
for(i=0;;i++){//循环,取出各位上的数字
if((x/10!=0)||(x%10!=0)){//判断是否已经取完
dig[i]=x%10;
x=x/10;
printf("%d\n",dig[i]);
}
else break;
}
dig[i]=-1;
return dig;
}
void main()
{
int num,*digits,count=0;
printf("please enter a number");
scanf("%d",&num);
digits=digit(num);//进行数字分解,并在数组最后一位填入-1,以示结束
for(int i=0;digits[i]!=-1;i++){//统计数字位数
count++;
}
for(int j=0;j<count;j++){//按序输出
printf("%d",digits[count-j-1]);
}
}
2、