表达式不可分配(不使用*或/的计算器)

时间:2019-03-20 09:53:10

标签: c++

我必须创建一个计算器,但不能在代码内使用*/。我不断得到

  

“表达式无法分配”

尝试使用加法进行乘法循环时出现

错误。有什么建议么?

char op;
int lhs, rhs; // stands for left-hand and right hand side of user input expression
int i;
int lhsnew;
int lhs2;

cout << "Enter the expression to run the calculator simulator: " << endl;
cin >> lhs >> op >> rhs;
//left hand side(lhs) operator right hand side (rhs)

switch(op)
// Switch based on operator chosen by user
{
    case'+':
    {
        cout << "The result is " << lhs + rhs << endl;
        break;
    }
    case'-':
    {
        cout << "The result is " << lhs - rhs << endl;
        break;
    }
    case'*':
    {
    // Here I made the loop control variable same as the rhs number submitted by user
        while(i >= rhs)
        {
            lhsnew = 0;
            lhsnew + lhs = lhsnew;

            i++;
            // Should I use a different looping method?
        }
        cout << "The result is " << lhsnew;`enter code here`
        break;
    }

    // Haven't included case for division
    return 0;
}

1 个答案:

答案 0 :(得分:3)

lhsnew + lhs = lhsnew;

应该是

lhsnew = lhsnew + lhs;

我猜你只是倒退了。那你为什么写正确的

lhsnew = 0;

代替错误的

0 = lhsnew;

在C ++中,您要分配的内容在右侧,而您要分配的内容(通常是变量)在左侧。

还请注意,您的循环非常错误,应该是

    lhsnew = 0;
    i = 0;
    while (i < rhs)
    {
        lhsnew = lhsnew + lhs;
        i++;
    }

1)您只想给lhsnew赋零,所以它应该在循环之前,而不是循环内部。

2)您从未在使用前给i一个值,它必须从零开始

3)您想在i < rhs而不是i >= rhs时进行循环。您对逻辑的看法有些否定