#记C语言中分数的除法问题
题目如下
将华氏温度转化为摄氏温度,利用公式C=5/9*(F-32)。其中C为摄氏度,F为华氏度。
问题很简单,可以很快的写出程序如下:
#include<stdio.h>
//华氏温度转化为摄氏
int main()
{
float f,c;
f=64;
c=(5/9)*(f-32);
printf("F=%f\nC=%f",f,c);
return 0;
}
但运行后输出发现 C=0。
查找问题后发现,除法在C中不能简单的和公式一样表达。如:5/9
得到结果为0,因为C中 “/” 号两边为整除即代表整除,得到的结果为0
所以要得到真实结果,应将两边一数字改为小数表示即 5.0/9,结果为17.777779
将行7代码变更即可
c=(5.0/9)*(f-32);