#include
int main(){
double f,c;
scanf("%1f",&f);
c = (f-32.0)*5.0/9.0;
printf("%.3f",c);
return 0;
}
上述代码若用double声明,结果乱码
若使用float声明,则结果运行正确
之前有了解到float输出时是先转换为double型,再按%f输出
这里不清楚为什么单精度和双精度对结果会产生影响
编译器使用的是codeblocks