为什么c变量总是输出0?

时间:2017-04-16 07:31:02

标签: c floating-point int

我正在尝试编写一个将华氏温度转换为摄氏温度的程序。 无论您输入什么内容,c始终会输出0

#include <stdio.h>

int main()
{
int f;
float c;

printf("Enter a temperature in fahrenheit: ");
scanf("%d", &f);

c = (f-32)*(5/9);

printf("%d fahrenheit is %.2f celsius.\n", f, c);
}    

1 个答案:

答案 0 :(得分:2)

在整数数学中,5/9为0,余数为5.您需要5.0 / 9.0。

在C中,你对结果所做的事情对它的计算方式没有影响。因此,即使c是一个浮点数并且您将数学结果存储在float中,数学仍然是整数数学,因为59,{{1 }和f都是整数。