c语言将整数的各个位数的数字分别提取_C语言学习:单位转换问题的一些思路...

在初学C语言的过程中,我们会见到一些基本的单位转换问题,下面让我们来分析一下其中的几个例子。


  1. 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

输入格式:

输入在一行中给出1个正整数,单位是厘米。

输出格式:

在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。

输入样例:

170

输出样例:

5 6

c748659541c0b196ee511b4bc2a0ab50.png

这个单位换算题目使用的基本思想,是将foot和inch分开来考虑。通过剥离整数求小数的方法值得学习。

inch=(foot-foot的整数部分)*12


2.有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。

输入格式:

输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。

输出格式:

输出四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。

输入样例:

1120 110

输出样例:

1310

81c6dcc3060a4ae75b08bbfd17ce8f26.png

同为单位转换,这个题目的思路却和上面的一题截然不同。因为我会输入一个大于60的数,这样导致了我们必须考虑进位。那这样就引发了我们的思考,如果这个数在60-119,进1位,如果在120-179,进两位······这样岂不是需要很多个循环结构才能满足要求,代码会非常冗杂。

但是,如果我们把所有的单位都换做最小位呢?

这样,我们得到了一个完全以分钟为单位的数temp

接下来的事情就变简单了,只需要把temp/60就可以得到小时了,然后temp%60,得到的就是分钟。

//转换一下思维,减少不少工作量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值