任给一个多位正整数,要求将其每一位都分解并分别输出
例
输入:114514
输出:1 1 4 5 1 4
思路:
首先借助循环结构将原整数连续除10并计数,将10的位数次幂转化为整数分解辅助值的初始值
然后再应用循环结构,将原整数连续除10,取余,重复,输出每一位次上的整数。
#include<stdio.h>
int main()
{
int num,k,t;
int mask = 1,count = 0;
scanf("%d",&num);
t = num;
while(num > 9 ){ //整数num位数的提取,num>9保证mask值准确
count ++;
mask *= 10;
}
// printf("%d",count);
num = t;
while(mask > 0){
//整数num各位数字的分离 ,此处循环判断语句为mask,
//保证即使某一位为0也能正常输出
k = num / mask;
num %= mask;
mask /= 10;
printf("%d",k);
if(mask > 0);
printf(" ");//判断最后一个空格的输出问题
}
}