题目:
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
输入格式:
输入一个正整数,做为厘米数。
输出格式:
输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开
分析:
我对这个题目的理解是,输入一个整数(单位为cm),将其换算为几英尺几英寸。
(1)将数据根据公式转化为几英尺,由于定义类型为int整数类型,小数部分会自动去掉
(2)而计算英寸时,需要用到上述计算出的几英尺的小数部分,再去乘12进行转换,同样,结果在赋值时会自动去掉小数部分。
(3)对公式的理解:(foot+inch/12)就是带小数的英尺,即口头上说的:几点几英尺
int foot=cm/30.48; 得到的即是几点几英尺的整数部分
(cm/30.48-foot)这个式子即是几点几英尺的小数部分
而这个式子为什么不会自动去掉小数部分?原因是30.48是小数,计算机在整数小数混合运算时结果为小数,所以在赋值给inch这个整数类型变量之前,式子的结果是小数
代码如下:
#include<stdio.h>
int main()
{
int cm,foot,inch;
scanf("%d",&cm);
foot=cm/30.48;
inch=(cm/30.48-foot)*12;
printf("%d %d",foot,inch);
return 0;
}