中M2018春C入门和进阶练习集7-15 厘米换算英尺英寸(15 point(s))

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
输入格式:
输入在一行中给出1个正整数,单位是厘米。
输出格式:
在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。
输入样例

170

输出样例:

5 6


编写程序其实就是数据结构加上算法的结合,以此题为例。
算法部分:
将输入的厘米正整数换算成米(/除以100.0)再将得到的结果/0.3048,这就得到了foot的值。再用a/100.0/0.3048的值减去foot再乘以12就得到了inch的值。

数据结构部分:
输入的为正整数,int a;


遇到的错误
5 51 D:\code\c\中M2018春C入门和进阶练习集\7-15.c [Error] invalid operands to binary % (have ‘double’ and ‘int’)
即为对于%两边为无效的操作数,int和double,%两边只能为int
解决方法:不使用%,换了算法。


#include<stdio.h>
int main()
{
    int a,foot,inch;
    scanf("%d",&a);
    foot=a/100.0/0.3048;
    inch=(a/100.0/0.3048-foot)*12;
    printf("%d %d\n",foot,inch);
    return 0;
}

我感觉需要注意的是a/100.0/0.3048和a/100/0.3048的差别,前者会将其结果作为浮点数输出,因规定的是int,所以可以保留,但后者会出现精度的缺失。

猜你喜欢

转载自blog.csdn.net/weixin_39504900/article/details/81431578