#include
void main() { int x,n,i,k,m;
scanf("%d",&n); printf("\n");
for ( i=0;i scanf("%d",&x); k=1; while ( x/k!=0 ) k*=10; if ( k>1 ) k/=10; do { m=x/k; printf("%d ",m); x-=m*k; k/=10; } while ( x!=0 ); printf("\n\n"); } } 思路是假定输入12453,则首先用1去除这个数,发现结果不等于0,于是再用10去除,用100去除,每次除数乘以10,直到结果等于0,这时会得到100000,这个数除以10得到10000,正好是12453的位数相同 输出时,12453/10000=1,输出,然后12453-1*10000=2453,然后将除数除以10, 于是输出2453/1000=2, ..., 直到x被减到0
你的程序最多只能处理一个数,程序可是要求要处理多个数的哦!重写的程序和运行结果如下
#include
int main()
{ int t,x,k;
scanf("%d",&t);
while(t--)
{ scanf("%d",&x);
k=9;
while(k k=k*10+9; k=k/10+1; do { printf("%d ",x/k); x=x%k; k/=10; } while(x); printf("\n"); } return 0; }