【发布时间】:2014-09-02 21:12:02
【问题描述】:
我有一个基本 C 的家庭作业,要求我计算某些表达式,然后在程序中检查我的答案。通过我自己的计算,我似乎无法得到任何正确的答案......
他们希望我使用这些变量来解决数学问题:
int a = 2;
double b = 4.7;
int c = 3;
double d = 4.2;
这是一个示例问题:
int answer1 = b+a/c-d;
我知道,因为它有一个 int 操作数,所以所有变量都转换为整数,所以我认为它应该看起来像这样:
(4+2)/(3-4)
我在手动操作时得到 -6 作为我的答案,但是当我将其作为代码输入时,它给我的答案是 0。有人可以解释一下吗?我做错了操作顺序吗?我只是不明白计算机是如何从中得到 0 的。这是我作业中最简单的问题,我不知道。请帮忙!
【问题讨论】:
-
首先,“我明白,因为它有一个 int 操作数,所以所有变量都转换为一个整数”——这甚至还不是真的。其次,您的 C 表达式
b+a/c-d中没有大括号。您的数学表达式(4+2)/(3-4)中有大括号。为什么会有差异? -
好吧,我现在觉得自己很蠢。那么最终答案是唯一被转换为整数的东西吗?看来我应该事先参加数学课复习哈哈。感谢您的帮助!