题目要求:输入一个正整数,结果是正序输出每一个数字并且要有空格间隔,最后一个数字不允许附带空格。
分析题目,正序分解要比逆序分解复杂一些,我们先构思一下解题思路,分为三步,1.先求出我们输入的数字的位数,2.在想出如何去输出值,3.并且要添加判断条件是否为最后一个数字。
代码演示:
1.先求出我们输入的数字的位数
我们得设置两个变量,一个变量t用来接受我们输入的数字,这样就可以任意修改,另一个变量k用来每进行一次循环则*10为后面输出数字做准备。
2.在想出如何去输出值
3.并且要添加判断条件是否为最后一个数字。
注意判断while和if条件必须是k, 如果是num的话设想一下, 700, 700 % 100 = 00;,则跳出循环输出不了后面的0
附上代码
//正序分解整数
#include <stdio.h>
int main()
{
int n, t;
int num; //
int k = 1; //k统计位数
scanf("%d", &num);
t = num;
while(t > 9)
{
t /= 10;
k *= 10;
}
while(k > 0)
{
n = num / k;
printf("%d", n);
if(k > 9)
{
printf(" ");
}
num %= k;
k /= 10;
}
return 0;
}