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

标签 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);
}    

最佳答案

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

在 C 语言中,您对结果所做的操作不会影响其计算方式。因此,即使 c 是一个 float 并且您将数学结果存储在 float 中,数学仍然是整数数学,因为 59f32 都是整数。

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

相关文章:

c - 如何使用 CAP_SYS_BOOT 能力?

C - 从文件中选择随机字符串

c - 仅使用整数寄存器将浮点值从 C 程序传递到汇编程序级程序?

android - R.string.value 帮助android通知

带有 long long int 的 CUDA atomicAdd()

java - 如何使原始点指向引用?

c++ - 为什么不同编译器的ascii值有差异

c - 浮点比较中的问题

php - 接受包含多点系统的值

C - 处理 HTTP 请求的库