c - 将华氏度转换为摄氏度时不理解输出

标签 c input output

<分区>

我有以下 C 程序,它以 华氏度 为单位获取温度并将其转换为 摄氏度 值。但是,每次我输入一个值时,它总是给我 0.00 作为输出。我不明白问题出在哪里。

#include <stdio.h>
int main()

{
    float cel_out, fht_in;

    printf("Enter a temperature in farenheit: ");
    scanf("%f", &fht_in);
    cel_out = (fht_in - 32) * (5/9);
    printf("Temperature in celcious: %.2f", cel_out);

    return 0;
}

最佳答案

在这个方程中

cel_out = (fht_in - 32) * (5/9);

当您使用 5/9 时,它是结果为 0 的整数数据类型。所以

 cel_out = (fht_in - 32) * 0; 

只有 0 个结果!

你需要使用-

cel_out = (fht_in - 32) * (5.0f/9.0f); 

这里它被视为浮点值并给出 5/9 的实际结果。

关于c - 将华氏度转换为摄氏度时不理解输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25600616/

相关文章:

elasticsearch - 是否可以在logstash中为索引设置自定义映射,但在elasticsearch中不能设置索引?

ios - Swift 输出覆盖变量

Python 输出格式问题

c - 对 C 结构不熟悉,有人可以帮我定义这些结构吗?

c - 将 int 值读入数组未按预期工作

Javascript 将输入值与 ID 匹配

javascript - 使用 jQuery 根据多个搜索条件进行过滤

c 编程 - 为什么这个使用 switch 的简单计算器不起作用

c++ - 在逗号运算符中,如果没有副作用,是否保证左操作数不会实际执行?

javascript - html() vs innerHTML jquery/javascript & XSS 攻击