Time Limit: 1000MS Memory limit: 65536K
题目描述
输入
输出
示例输入
a*b+(c-d/e)*f#
示例输出
ab*cde/-f*+
提示
来源
示例程序
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int >q;
char str[110];
int i;
scanf("%s",str);
for(i=0;str[i]!='#';i++)
{
if(str[i]>='a'&&str[i]<='z')
printf("%c",str[i]);
else if(str[i]=='(')
q.push(str[i]);
else if(str[i]==')')
{
while(q.top()!='(')
{
printf("%c",q.top());
q.pop();
}
q.pop();
}
else if (str[i]=='+'||str[i]=='-')
{
while(!q.empty()&&q.top()!='(')
{
printf("%c",q.top());
q.pop();
}
q.push(str[i]);
}
else if(str[i]=='*'||str[i]=='/')
{
while(!q.empty()&&q.top()!='('&&(q.top()=='/'))
{
printf("%c",q.top());
q.pop();
}
q.push(str[i]);
}
}
while(!q.empty())
{
printf("%c",q.top());
q.pop();
}
printf("\n");
return 0;
}