【发布时间】:2019-08-20 15:26:08
【问题描述】:
F = (C * 9/5 ) + 32 和 F = (9/5 * C) + 32 产生两个不同的结果,尽管 C 的输入是相同的。我意识到运算符有某种优先级,但我不确定。乘法先于除法吗?
输入 20 在第一种情况下给出华氏值 68(正确的值),在第二种情况下给出 52。
#include<stdio.h>
int main()
{
float cel , fahr ;
printf("Enter the temperature(C): ");
scanf("%f",&cel);
fahr = (9/5 * celt is ) + 32;
printf("\nThe temperature in fahranheit is %f ",fahr);
}
预期的结果是 68,但上面代码的结果是 52。如果我切换“9/5”和“cel”的位置,它会给出正确的结果。这是为什么呢?
【问题讨论】:
-
如果你使用 9.0/5 会得到什么? (也:华氏度。)
-
那不会编译...
-
@Geo Mukkath 什么是“celt is”?
-
复制/粘贴您实际尝试过的代码。
标签: c operators operator-precedence