求一道C语言编程问题,将表达式展开,如a-(b+c)展开为a-b-c。谢谢大家了

2025-06-26 11:45:49
推荐回答(3个)
回答1:

这个问题其实很复杂,本人可以提供一个思路:
至少要写一段程序,能够解析含有加法减法和括号的表达式。
然后在此基础上,再实现一下去括号的功能就可以了。

回答2:

963438718

篇幅太长,这样不好写

回答3:

C++代码

#include

#include

#include

using namespace std;

struct Char{

bool check;

char a;

}clist[101]; 

stack kuo; 

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;

}