发表时间:2022-03-25来源:网络
今天这道题目,正如字面意思一样,是用C语言来实现厘米换算英尺英寸。
这道题目呢,是收录在基础编程题目集当中的编程题第一题,按理来说没啥难度,但为什么我要放上来呢,因为这道题的题目意思存在歧义。
话不多说,我们先来看看这道题目的要求:
1、如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)*0.3048。
2、现在要求输入的是厘米数,求对应英制长度的英尺foot和英寸inch的值。
3、1foot=12inch。
以上就是给定的要求,照理来说,知道这些要求好,我们可以根据数学公式,把foot和inch分别用cm的形式,即用表达式的形式表现出来。
但这就是问题所在了。

如图所示,根据题目要求,算出来的foot与cm的对应关系应该是这样的。
可是我在具体做这道编程题的时候,用这样的方式代入却是错误的。
所以我去网上查了查,1英尺到底等于多少cm。
最终得到1foot=30.48cm。

在清楚英尺与cm之间的关系后,我们也明白了这部分代码该怎么去写。
1、要求输入一个数,我们自然而然会想到用scanf函数。
2、1foot=30.48cm,然后输入的是cm数,所以得到的foot值应该为foot=cm/30.48。
3、因为1foot=12inch,所以可以得到inch=30.48*cm/12,但是这样做也是存在问题的,我们要根据这个公式来求得inch与cm之间的对应关系,所以这道题目就很有问题。
要求保留结果为整数,所以用int类型来代表inch和foot就行了。
#include int main(){ int foot = 0; int inch = 0; int cm = 0; scanf("%d", &cm); foot = cm/100.0/0.3048; inch = (cm/100.0/0.3048-foot)*12; printf("%d %d", foot, inch); } 

这道题目呢,到这边就已经完成了,不过我们可以来看看这道题目在进行检查的时候的要求。
分别有四个测试点。
1、sample、inch尾数不大于0.5,不是四舍五入而是截断,这是因为用到了int数据类型,直接把小数点后面的数字给去掉了。
2、0,也是作为一个测试点。
3、foot为0的时候,应该也是0。
4、inch为0的时候,应该也是0。
正好这个程序都能满足这些测试点。
这道题目呢,是因为题目存在歧义,当然也与我不知道英尺英寸与厘米之间的关系所导致的,还是得多留心关于这种常识方面的知识才行。
上一篇:c语言入门编程题的书
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务