C ++初学者 - 简单的输出

时间:2014-10-14 08:25:35

标签: c++

这里我有简单的代码作为整数的计算器。

//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”。为什么我的答案变量都搞砸了?

5 个答案:

答案 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");
}

Try it out

答案 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;

有两种方式错误:

  1. 如果您想要分配值来回答,请使用分配=而不是==运算符。
  2. 分配值从右到左,因此您想要的变量应位于左侧。
  3. 第二个错误

    在行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");,因为如果您传输代码,它会出现问题。只是一个建议。