第一种方法:利用数组存储
//从低位到高位输出

#include<stdio.h>int main(){ int x,i;int a[50]; int k=0; printf("请输出一个数"); scanf("%d",&x); while(x>0) { a[k]=x%10; x/=10; k++; } for(i=0;i<k;i++) { printf("%3d",a[i]); } return 0;}

//从高位到低位输出

#include<stdio.h>int main(){ int x,i;int a[50]; int k=0; printf("请输出一个数"); scanf("%d",&x); while(x>0) { a[k]=x%10; x/=10; k++; } for(i=k-1;ia.=0;i--) { printf("%3d",a[i]); } return 0;}

第二种方法:
//从高位往低位输出

#include <stdio.h>int main(){ int a; printf("请输出一个数"); scanf("%d",&a); output(a);}void output(int x){ if( x >= 10) { output(x / 10); //x=x/10也对,区别在于没有存储而已,这也像“”中断函数“一样 } printf("%d ",x % 10);}

//从低位往高位输出

#include <stdio.h>int main(){ int a; printf("请输出一个数"); scanf("%d",&a); output(a);}void output(int x){ if( x > 0) { printf("%d ",x % 10); output(x / 10); }}