错误点在哪?如果将网上答案的第七行改成:inch=centimeter/(0.3048*100)%12;这错在哪?‘%’不就是余的意思吗?另外int整型类数据进行“/”和‘%’运算一定错还是这两种运算必须是float或double类型才行?
这是我自己写的:
#include<stdio.h>
int main()
{
int cm,foot,inch;
scanf("%d",&cm);
foot=(cm/100/0.3148)%12;
inch=(cm/100/0.3148)/12;
printf("%d %d",inch,foot);
return 0;
}
这是网上答案:
#include<stdio.h>
int main()
{
int foot,inch,centimeter;//(foot+inch/12)×0.3048
scanf("%d",¢imeter);
foot=centimeter/(100*0.3048);
inch=(centimeter/(0.3048*100)-foot)*12;
printf("%d %d",foot,inch);
return 0;
}
cm/100
因为cm是整数,100也是,所以这是整除
为了避免精度问题
修改成
cm/100.0
先把foot和inch与centimeter之间的运算公司先列出来。
英尺foot不需要与12求余;
英寸inch也不需要除以12;
这是属于数学公式推导的问题。