如果已知英制長度的英尺foot和英寸inch的值,那么對應(yīng)的米是(foot+inch/12)×0.3048。現(xiàn)在,如果用戶輸入的是厘米數(shù),那么對應(yīng)英制長度的英尺和英寸是多少呢?別忘了1英尺等于12英寸。
輸入格式:
輸入在一行中給出1個正整數(shù),單位是厘米。
輸出格式:
在一行中輸出這個厘米數(shù)對應(yīng)英制長度的英尺和英寸的整數(shù)值,中間用空格分開
#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;
在計算過程中都是按浮點數(shù)操作的,由于int定義為int型,所以inch只保留了結(jié)果的整數(shù)部分。
而在自己的程序中,將m定義為int型,cm/100,只保留整數(shù)部分,造成在以后的計算中只用了整數(shù)部分,使誤差大大增大到不可用的地步。