C=5/9*(F-32); 中5/9 的结果为0,导致C为0了。类型问题引起的。可以用5/9.0
c=5.0/9(F-32) 认为5.0/9是float运算
c=5/9(F-32)中5/9认为是int运算,5/9计算完后再将值类型转换为float
类型要要有一个是float,所以写9.0保证是浮点
#include <stdio.h>
int main()
{
float F, C;
printf("请输入您需要转换的华氏温度:");
scanf("%f", &F);
C = (F - 32) * 5 / 9.0;
printf("其对应的摄氏温度为:%.2f \n", C);
}
5/9是整型除法,结果是整数,小数精度没了
当执行一个计算时,不管是加法、减法还是乘除法,各变量会自动隐式转换成较大的类型进行计算
如果都是int,那么参与运算的是int,结果也是int
如果是int+double,那么所有变量会先转换成double再计算