This question already has answers here:
An unexpected result about divide in C [duplicate]
                                
                                    (2个答案)
                                
                        
                                2年前关闭。
            
                    
我正在尝试编写将华氏度转换为摄氏度的程序。
无论输入什么,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);
}

最佳答案

在整数数学中,5/9为0,余数为5。您希望改为5.0 / 9.0。

在C语言中,对结果执行的操作不会影响结果的计算方式。因此,即使c是浮点型并且您将数学结果存储在float中,该数学仍然是整数数学,因为59f32都是整数。

关于c - 为什么c变量总是输出0? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43434851/

10-12 05:53