标题:当输入的数小于32时,输出的是C=-0.000000,输入的数大于等于32时,输出的是 ...
只看楼主
郑风十一
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2017-3-13
结帖率:100%
 问题点数:0 回复次数:5 
当输入的数小于32时,输出的是C=-0.000000,输入的数大于等于32时,输出的是C=0.000000,还请各位指导。
#include <stdio.h>
int main()
{
    double F,C;
    printf("Input the F of the table:");
    scanf_s("%lf",&F);                        //程序是进行华氏温度到摄氏温度之间的转换
    C = (5 / 9) * (F - 32);
    printf("C=%lf\n",C);
    return 0;
}
搜索更多相关主题的帖子: 华氏温度 include double return 
2017-03-28 23:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
//C = (5 / 9) * (F - 32);
C = (1.0 * 5 / 9) * (F - 32);
2017-03-29 07:33
郑风十一
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2017-3-13
得分:0 
回复 2楼 吹水佬
可以了,谢谢,但是不明白的是为什么要加1.0呢?
2017-03-29 09:47
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
"5/9"  整型相除的结果默认强转为整型  

乘个1.0f  掺杂个浮点型的运算

三十年河东,三十年河西,莫欺少年穷!
2017-03-29 10:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用郑风十一在2017-3-29 09:47:09的发言:

可以了,谢谢,但是不明白的是为什么要加1.0呢?

相当于:
C = ((double)5 / 9) * (F - 32);
因整数与整数运算结果是整数,所以要强调是一个浮点数参与运算。
2017-03-29 10:32
peter张
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:98
注 册:2017-3-7
得分:0 
改为:
C = 5.0/9.0 * (F-32);

5 与 9 是整形,除数为0;
2017-03-29 12:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475604-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.227471 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved