方法一:先逆序再逆序
# include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
int t = 0;
do{
int d = x%10;
t = t*10+d;
x /= 10;
}while(x>0);
printf("x=%d,t=%d\n",x,t);
x = t;
do{
int d = x % 10;
printf("%d", d);
if(x>9){
printf(" ");
}
x /= 10;
}while(x>0);
printf("\n");
return 0;
}
缺点:不适合末尾为0的正整数
方法二:
# include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
int mask = 1;
int t = x;
// 判断几位数
while(t>9){
t /= 10;
mask *= 10;
}
printf("x=%d,mask=%d\n", x, mask);
// 正序输出
do{
int d = x / mask;
printf("%d", d);
// 最后一个数输出后无需加空格
if(mask > 9){
printf(" ");
}
x %= mask;
mask /= 10;
}while( mask > 0 );
printf("\n");
return 0;
}