为什么我的 C++ 计算器每输入两个数字就减去一次,而不是执行我要求它执行的操作?
Why does my calculator in c++ subtract every two numbers I input, instead of doing the operations I asked it to do?
所以,我写了这个程序,但是当我输入任意两个数字和一个代表运算的数字时,它总是将这两个数字相减,我不知道出了什么问题...
if (c = 1)
C++中的=
符号表示赋值,而不是比较。您需要 ==
(在其他三种情况下也需要)。
问题是你有
if (c = 1) {
...
}
表达式 c = 1
将 1 分配给 c
然后 returns 1,这是正确的,因此它进行了减法。
你的意思是
if (c == 1) {
...
}
不幸的是,您犯了 C 和 C++ 的比较与赋值运算符的菜鸟错误。
if( c = 2 ) {
首先将 2 的值赋给变量 c
,然后测试 true
或 false
(非零或 C/C++ 中的零)。在这种情况下 2
,即 true.
你应该用过:
if( c==2 ) {
因为这会将 c
的值与 2
和 returns 的值进行比较,以防它们相等。
所以,我写了这个程序,但是当我输入任意两个数字和一个代表运算的数字时,它总是将这两个数字相减,我不知道出了什么问题...
if (c = 1)
C++中的=
符号表示赋值,而不是比较。您需要 ==
(在其他三种情况下也需要)。
问题是你有
if (c = 1) {
...
}
表达式 c = 1
将 1 分配给 c
然后 returns 1,这是正确的,因此它进行了减法。
你的意思是
if (c == 1) {
...
}
不幸的是,您犯了 C 和 C++ 的比较与赋值运算符的菜鸟错误。
if( c = 2 ) {
首先将 2 的值赋给变量 c
,然后测试 true
或 false
(非零或 C/C++ 中的零)。在这种情况下 2
,即 true.
你应该用过:
if( c==2 ) {
因为这会将 c
的值与 2
和 returns 的值进行比较,以防它们相等。