69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stack>
#include<string.h>
using namespace std;
stack<char> sop;
int main(){
char f[100];
char let[100];
int i,len;
int size;
while(scanf("%s",f)!=EOF){
while(!sop.empty()){
sop.pop();
}
size=0;
len=strlen(f);
for(i=0;i<len;++i){
if(f[i]>='a'&&f[i]<='z')
let[size++]=f[i];
else{
switch(f[i]){
case'+':
case'-':{
while(!sop.empty()&&sop.top!='('){
//if(sop.top()=='(')
// break;
let[size++]=sop.top();
sop.pop();
}
sop.push(f[i]);
break;
}
case'*':
case'/':{
while(!sop.empty()&&sop.top()!='('&&!(sop.top()=='+'||sop.top()=='-')){
//if(sop.top()=='('||sop.top=='+'||sop.top()=='-')
// break;
let[size++]=sop.top();
sop.pop();
}
sop.push(f[i]);
break;
}
case '(': sop.push(f[i]);
break;
case ')':{ while(sop.top()!='('){
let[size++]=sop.top();
sop.pop();
}
sop.pop();
break;
}
default: printf("Error!\n");
}//switch(){}
}//else{}
}//for(){}
while(!sop.empty()){
let[size++]=sop.top();
sop.pop();
}
let[size]='\0';
printf("%s\n",let);
}
return 0;
}