我和我的一个朋友正在制作一个计算器。我们俩都是经验不足一个月的初学者。他给了我他的代码,并告诉我,如果有空格,它将不起作用。
例如:4 + 6 + 8 +(((3 + 4))+(4 + 8(9-5(3 * 8)))有效
例如:4 + 6 + 8
我被告知要显示最少的代码,所以这里是我希望问题出现在spaceremoval函数中的地方
string SpaceRemoval(string & EquationText)
{
string NewEquationText = "";
// check every character
for (int i = 0; i < EquationText.length(); i++)
{
if (EquationText[i] != ' ') // if the character is not a ' ' then add it to the NewEquationText
{
NewEquationText += EquationText[i];
}
}
// return the NewEquationText
return NewEquationText;
}
第二部分
bool GetEquation()
{
// Input equation
cout << "Equation F(x) = ";
cin >> EquationText;
// Add Parentheses in the equation
AddParentheses(EquationText);
// Remove extra spaces in the equation
EquationText = SpaceRemoval(EquationText);
// Check if the equation is valid
return EquationValidation(EquationText);
}
最后一部分
#include "Header.h"
int main()
{
while(true)
{
// Get Equation
if (GetEquation())
{
// it's a valid equation
calculateExpression(EquationText)
}
else
{
// it's a invalid equation
cout << "invalid equation\n\n";
}
}
如果您需要查看更多代码,可以询问我。