注册 登录
编程论坛 C++教室

新手问个问题 谢了

A451212074 发布于 2012-01-25 23:45, 640 次点击
#include <stdio.h>
void main()
{
    float A,B;
    printf("请输入华氏温度:");
    scanf("%f",&A);
    B=5/9*(A-32);
    printf("摄氏度为:%f\n",B);
    }
这个是把华氏温度转化为摄氏度的程序 为什么输入任何华氏温度出来的设施文帝都是0。0000啊?
6 回复
#2
yucifenxishi2012-01-26 10:09
是因为 B=5/9*(A-32);这句,5/9等于0再*(A/32)就是0了,把5和9改成
5.0和9.0隐式转换就可以了
#3
回不到原点2012-01-31 14:09
楼上的说的对。。。
#4
elvis_sun2012-01-31 14:23
这个要注意两个问题:1、运算符优先级2、类型的隐式转换
#5
Lovaer2012-02-03 18:15
"/"在C++里表示求整,5/9=0   把9改成9.0试试,还要注意运算优先级。。。。
本人菜鸟一枚,愿与楼主真诚沟通!!
#6
自由C2012-02-03 20:08
谢谢楼上的分析,学习一下,我也是新手,初学时这些东西都没注意过,现在看真是无地自容。顺便问一下,如果用double能不能得到结果?
#7
pangding2012-02-04 10:21
以下是引用自由C在2012-2-3 20:08:58的发言:

谢谢楼上的分析,学习一下,我也是新手,初学时这些东西都没注意过,现在看真是无地自容。顺便问一下,如果用double能不能得到结果?
可以,但也得写成 5.0 之类的。而且一般更习惯用 double。
1