我最近开始学习如何编程,分配给我的任务之一是用c ++编写一种算法,该算法将要求三个数字,然后挑选最小的一个。我写的一段代码如下。
if (a <= b) { a = d; }
else { b = d; }
这应该从前两个数字中选出最小的一个,然后将其“链接”到d
,但是经过一段时间的错误结果后,我意识到无论{{1}的值如何}和a
赋予b
值为d
。
事实证明,只有当我用翻转的字符写相同的东西并且输入变量排在最后时,这才起作用:
0
那是为什么?关于C ++的语法,我应该知道些什么吗?
似乎有一个奇怪的特定规则……
编辑:撰写本文时,我不小心写了{a = d}而不是{d = a},
这是其余的代码(它可以正常工作,但仅在我刚才说过的字符翻转之后)
if (a <= b) { d = a; }
else { d = b; }
答案 0 :(得分:1)
在第一个代码片段中,您根本没有分配给d。赋值(=)运算符将右值(右侧)分配给左值(左侧)。这是非常标准的语法。