这个问题其实很复杂,本人可以提供一个思路:
至少要写一段程序,能够解析含有加法减法和括号的表达式。
然后在此基础上,再实现一下去括号的功能就可以了。
963438718
篇幅太长,这样不好写
C++代码
#include
#include
#include
using namespace std;
struct Char{
bool check;
char a;
}clist[101];
stack
int main(){
string s;
getline(cin,s);
int i=0; int t=0;
bool check=true,kk;
while(i if(s[i]=='('){ kk=true; if(i>0&&s[i-1]=='-'){ check=!check; kk=false; } kuo.push(kk); } if(s[i]==')'){ if(!kuo.top()) check=!check; } if(s[i]>=97&&s[i]<=122){ clist[t].a=s[i]; if(i>0&&s[i-1]=='-') clist[t].check=!check; else clist[t].check=check; t++; } i++; } if(!clist[0].check) cout<<'-'; cout< for(int j=1;j if(clist[j].check) cout<<'+'; else cout<<'-'; cout< } return 0; }