这里我有简单的代码作为整数的计算器。
//Calculator, by Michael Lowry
#include <iostream>
using namespace std;
void main ()
{
int input = 0;
int input2 = 0;
int answer = 0;
int operation = 0;
cout << "Enter your first number" << endl;
cin >> input;
cout << "Type 1 for addition, 2 for subtraction, 3 for multiplication, or 4 for division" << endl;
cin >> operation;
cout << "Enter your second number" << endl;
cin >> input2;
if (operation = 1)
{
input + input2 == answer;
}
if (operation = 2)
{
input - input2 == answer;
}
if (operation = 3)
{
input * input2 == answer;
}
if (operation = 4)
{
input / input2 == answer;
}
cout << "Your answer is " <<
cout << answer << endl;
system ("PAUSE");
}
当我为所有三个输入输入“1”时,我得到输出“你的答案是6121DBCC0”。为什么我的答案变量都搞砸了?
答案 0 :(得分:2)
您的输出出错了。你应该
cout << "Your answer is " << answer << endl;
而不是
cout << "Your answer is " <<
cout << answer << endl;
您正在编写输出的外流对象cout
。
其他人也注意到,比较运算符也是错误的。您应该在==
- 语句中使用=
而不是if
,而在分配部分中则相反。像这样:
if (operation == 2)
{
answer = input - input2;
}
答案 1 :(得分:1)
有几个错误:为operation
变量分配值,而不是将其与某些内容进行比较:
if (operation = 1)
它应该是
if(operation == 1)
此外,这并没有将input+input2
的结果分配给答案,而是进行未使用的比较评估
input + input2 == answer;
而且应该是
answer = input + input2;
您应该相应地更改您的代码。最后这个:
cout << "Your answer is " <<
cout << answer << endl;
是错误的,因为您传递cout
对象(注意operator<<
)。应该是
cout << "Your answer is " << answer << endl;
另外:main()
应该返回int
。
因此,您的代码应如下所示:
int main () {
int input = 0;
int input2 = 0;
int answer = 0;
int operation = 0;
cout << "Enter your first number" << endl;
cin >> input;
cout << "Type 1 for addition, 2 for subtraction, 3 for multiplication, or 4 for division" << endl;
cin >> operation;
cout << "Enter your second number" << endl;
cin >> input2;
if (operation == 1) {
answer = input + input2;
}
if (operation == 2) {
answer = input - input2;
}
if (operation == 3) {
answer = input * input2;
}
if (operation == 4) {
answer = input / input2;
}
cout << "Your answer is " << answer << endl;
system ("PAUSE");
}
答案 2 :(得分:1)
首先:使用
if (operation == 1)
而不是
if (operation = 1)
因为==
用于相等,=
用于分配。
第二:
answer = input1 + input2;
而不是
input + input2 == answer;
在所有if
语句中执行此操作。
第三:使用
cout << "Your answer is " << answer << endl;
打印你的答案。
请记住answer = input / input2
会给你整数除法而不是浮点数。
答案 3 :(得分:1)
如果要为变量answer
赋值,则应执行以下操作:
answer = input1 (required operator here) input2;
在你的代码中这样的结构:
input - input2 == answer;
有两种方式错误:
=
而不是==
运算符。在行if (val = yourConstant)
中你犯了非常流行的错误 - 在if语句中分配。许多语言禁止这样的事情,因为没有调试或测试它们很难被发现。 if语句中的代码仅在yourConstant
大于0时才会执行。请使用if (val == yourConstant)
或if (yourConstant == val)
。
答案 4 :(得分:0)
所以而不是:
if (operation = 1)
做的:
if (operation == 1)
同时将输出更改为:
cout << "Your answer is " << answer << endl;
另一个错误:
input - input2 == answer;
这是错误的。您必须将答案等于input - input2
。此外,应该只有一个=
,因为它不是一个条件。
所以:
answer = input - input2;
将它应用于if语句中的所有算术。那应该解决它。
但是,请尝试不使用system ("PAUSE");
,因为如果您传输代码,它会出现问题。只是一个建议。