if-else 语句仅按特定顺序工作,我不知道为什么
if-else statement only works in a specific order and I don't know why
我最近开始学习如何编程,我被分配的任务之一是用c ++编写一个算法,该算法会要求三个数字,然后挑选出最小的一个。我编写的代码片段如下。
if (a <= b) { a = d; }
else { b = d; }
这应该挑出前两个数字中最小的一个,然后将其"链接"到d
,但是在得到错误的结果一段时间后,我意识到无论a
和b
的值如何,它都会给d
一个0
的值。 事实证明,这只有在我用翻转的字符编写相同的东西时才有效,输入变量排在最后:
if (a <= b) { d = a; }
else { d = b; }
为什么?关于 c++ 的语法,我应该知道一些东西吗?
似乎是一个奇怪的具体规则...
编辑:在写这篇文章时,我不小心写了{a = d}而不是{d = a},它应该符合我现在的意图。
这是代码的其余部分(它可以工作,但只有在我之前所说的翻转字符之后(
#include <iostream>
using namespace std;
int main() {
int a,b,c,d,min;
cin >> a >> b >> c;
if (a<=b) {d = a;}
else {d = b;}
if (c<=d) {min = c;}
else {min = d;}
cout << min << endl;
}
在第一个代码片段中,您根本不会分配给 d。赋值 (=( 运算符将右值(右侧(分配给左值(左侧(。 这是非常标准的语法。
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- 我不知道这条线是做什么的
- 如果我不知道每个列表中有多少个数字,我如何将给定数量的数字列表作为输入?
- 我不知道导致错误的原因 (C3074)
- 我不知道为什么这段代码会让核心被转储?
- 我正在尝试制作一个自平衡机器人,但编译时存在错误。我不知道如何解决它
- 我不知道如何使用代码块win32 gui
- 没有函数模板的实例与我不知道为什么的参数列表匹配
- if-else 语句仅按特定顺序工作,我不知道为什么
- DirectX 11 引擎在第三次代码改进后没有突然运行,我不知道为什么
- 程序输入名称和高度并显示它。我不知道如何显示列表中最高人的姓名和身高
- 函数抛出seg错误,我不知道为什么
- 我不知道为什么复制构造函数的调用在 c++ 中不稳定
- 我不知道它是如何工作的表[+1]?
- boost::asio http客户端停止工作,我不知道为什么
- 我不知道为什么我的数组不能正常工作
- 我可以使用' == '来比较两个向量吗?我试过了,似乎工作正常。但我不知道它是否适用于更复杂的情况
- 不同类型的指针之间的分配工作,我不知道为什么