我必须创建一个计算器,但不能在代码内使用*
或/
。我不断得到
尝试使用加法进行乘法循环时出现“表达式无法分配”
错误。有什么建议么?
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;
}
答案 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
时进行循环。您对逻辑的看法有些否定