0
목적은 픽스/리버스 폴란드어 표기법을 해결할 프로그램을 작성하는 것이 었습니다. 그것은 쉬운 일로 보였지만 나는이 오류를 간과하는 것처럼 보입니다. 모든 도움을 미리 감사드립니다.픽스 후 표현 솔버
vector<int> stack;
string input;
cout << "Please enter post-fix expression to be evaluated (+, -, *, /): ";
cin >> input;
for(int i=0; i<input.size(); i++)
{
if(input[i] == '+')
{
int temp1 = stack.back();
stack.pop_back();
int temp2 = stack.back();
stack.pop_back();
int sum = temp1 + temp2;
stack.push_back(sum);
}
else if(input[i] == '-')
{
int temp1 = stack.back();
stack.pop_back();
int temp2 = stack.back();
stack.pop_back();
int difference = temp1 - temp2;
stack.push_back(difference);
}
else if(input[i] == '*')
{
int temp1 = stack.back();
stack.pop_back();
int temp2 = stack.back();
stack.pop_back();
int product = temp1 * temp2;
stack.push_back(product);
}
else if(input[i] == '/')
{
int temp1 = stack.back();
stack.pop_back();
int temp2 = stack.back();
stack.pop_back();
int quotient = temp1/temp2;
stack.push_back(quotient);
}
else
{
stack.push_back(input[i]);
}
}
cout << "Result: " << stack.back();
음, 처음에는'input [i] == '+''는'int'와'char'를 비교하려고 시도하고 있습니다. 둘째,''+ ''가''int'가 아니기 때문에,''cin >> 입력은 결코''+ ''를 성공적으로 읽지 않을 것입니다. – cdhowie
둘째, - 및/또는 잘못된 순서로 피연산자를 사용했습니다. – EJP
이것은 [codereview] (http://codereview.stackexchange.com/)에 대한 완벽한 질문이지만 stackoverflow에 대한 질문은 아닙니다. – dvvrd