大佬们,求请教这道c语言题目怎么写?

2025-04-16 12:05:26
推荐回答(2个)
回答1:

#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

回答2:

你的程序最多只能处理一个数,程序可是要求要处理多个数的哦!重写的程序和运行结果如下

#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;

}