方法一:先逆序再逆序
# 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;
}