题解 | #温度转换#

温度转换

https://ac.nowcoder.com/acm/problem/22004

遇到难点1:复制原式c=5/9*(f-32);
得到结果为0.000,
原因:整数相整除,不足1得0,0与其他相乘均为0
解决:讲5或9改为5.0或9.0
遇到难点2:不能全部通过
解决:观察其他题解,将原本float c,f;改为double类型
问题;不明白原理

#include <stdio.h>
#include <math.h>
int main()
{
    double c,f;
    scanf("%lf",&f);
    c=5.0/9.0*(f-32);
    printf("%.3lf\n",c);
    return 0;
}
全部评论
谢谢你的两个问题解答,至于原理就是根据题目来啊
3 回复 分享
发布于 2021-07-25 13:47
xd,四舍五入没写
1 回复 分享
发布于 2022-03-13 20:39
写成(5.0/9.0)*(f-32)试试,可能是运算顺序的问题
点赞 回复 分享
发布于 2024-10-15 11:48 北京
我也遇到了这个问题,然后发现直接 printf("%.3f", 5.0 * (f - 32) / 9); ,就能通过
点赞 回复 分享
发布于 2024-08-21 19:19 福建
static_cast<float>(5)/9*(f-32);</float>
点赞 回复 分享
发布于 2023-09-23 23:04 甘肃

相关推荐

评论
73
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务