假设输入12345
先要求出最高位——>1
再求出次高位——>2
以此类推,需要先知道输入的数字是几位数,然后根据最高位依次减少位数,最终实现正序输出
//整数分解
#include<stdio.h>
int main()
{
//定义一个变量存放从键盘输入的数字
int x;
int i=0; //记录输入的数字是几位数
int j=1;
printf("请输入一个数字\n");
scanf("%d",&x);
int count=x;
//计算得出输入的是几位数
do{
count=count/10;
i++;
}while(count!=0);
printf("您输入的是%d位数\n",i);
int i1=i ;//存放i中的值
//求出最高位对应数值大小
for(i1;i1>1;i1--)
{
j=j*10;
}
printf("最高位是:%d位\n",j);
//实现正序输出
for(i;i>0;i--)
{
printf("%d ",x/j);
x=x%j;
j=j/10;
}
printf("\n");
return 0;
}
以下是程序运行截图: