2018-03-21

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

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

捕获.PNG

正确

#include <stdlib.h>
int main(int argc, char *argv[]) {
    int foot;
    int inch;
    int m;
    int cm;
    scanf("%d",&cm);
    m=cm/100.0;
    foot=m/(0.3048);
    inch=(cm/100.0/0.3048-foot)*12;
    printf("%d ",foot);
    printf("%d\n",inch);
    return 0;
}
捕获.PNG

错误原因:
int inch;int cmlen;
inch = (cmlen/100.0/0.3048-foot)*12;
在计算过程中都是按浮点数操作的,由于int定义为int型,所以inch只保留了结果的整数部分。
而在自己的程序中,将m定义为int型,cm/100,只保留整数部分,造成在以后的计算中只用了整数部分,使误差大大增大到不可用的地步。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容