This question already has answers here:
An unexpected result about divide in C [duplicate]
(2个答案)
2年前关闭。
我正在尝试编写将华氏度转换为摄氏度的程序。
无论输入什么,
(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
中,该数学仍然是整数数学,因为5
,9
,f
和32
都是整数。
关于c - 为什么c变量总是输出0? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43434851/
10-12 05:53