[简单]从高位开始逐位分割一个整数的的各位数字
题目原文:输入一个整数,从高位开始逐位分割并输出它的各位数字。
输入输出示例
Input an integer:123456
1 2 3 4 5 6
(完)
这个问题有人问过了,我看到靠谱点的思路就是:先求出这个数的位数,然后分别除以10的几次方,然后%10求出数字,然后输出。
我也这么想的,但是总感觉编程出来有点奇葩,运行起来是没问题的。求个人给看下程序是不是可以优化下,或者换个思路解决这个问题。
个人编的程序:
#include <stdio.h>
int main(void)
{
int number,x,i,j,count,digit,pow;
printf("input an integer:");
scanf("%d",&number);
if(number<0)
number=-number;
x=number;
count=0;
do{
x=x/10;
count++;
}while(x!=0);
for(i=count;i>0;i--){
x=number;
pow=1;
for(j=1;j<i;j++){
pow=10*pow;
}
digit=(x/pow)%10;
printf("%d ",digit);
}
return 0;
}