我正在制作一个基本计算器,它使用if
/else
语句来选择要在公式中使用的符号。所有else
/if
语句都报告了一个错误:
错误:赋值的左操作数需要左值
#include <iostream>
using namespace std;
int main()
{
//declare variables
int num1;
int num2;
int sol;
bool sign;
//prompt for num1
cout << "Greetings! Please enter a number." << endl;
cin >> num1;
//prompt for num2
cout << "Great! Now, please enter the second number." << endl;
cin >> num2;
//prompt for sign
cout << "Almost there! Now, please enter the sign you wish to use in the equation." << endl;
cin >> sign;
//arguments
if (sign == '+')
{
num1 + num2 = sol;
}
else if (sign == '-')
{
num1 - num2 = sol;
}
else if (sign == '*')
{
num1 * num2 = sol;
}
else if (sign == '/')
{
num1 / num2 = sol;
}
else
{
cout << "Sorry, that is not a valid symbol." << endl;
return 0;
}
//print results
cout << "The solution is: " << sol << endl;
return 0;
}
您的作业被颠倒了。=
不是可交换算子。
它们都应该是形式
sol = num1 op num2
您要做的是将sol
的(未初始化的(值分配给计算结果中未命名的临时值。令人高兴的是,这是一个基本类型的硬错误。