正序分解整数

题目要求:输入一个正整数,结果是正序输出每一个数字并且要有空格间隔,最后一个数字不允许附带空格。

 

分析题目,正序分解要比逆序分解复杂一些,我们先构思一下解题思路,分为三步,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;
} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值