中缀表达式转换为后缀表达式c++b编程(4)

2019-08-30 15:52

}

}

cout<

double Add(word post[100],int l)//求和 {

STACK S; MakeNull(S);

for(int i=0;i

if(post[i].type=='0')//为数字时 {

Push(post[i],S);

iDisplay(S);

} else {

double a,b; a=Pop(S).num;

iDisplay(S);

b=Pop(S).num;

iDisplay(S);

word c; c.type='0';

switch(post[i].type) {

case '+': c.num=b+a;break;

case '-': c.num=b-a;break; case '*': c.num=b*a;break; case '/': c.num=b/a;break;

}

default: break;

Push(c,S);

iDisplay(S);

}

}

double result=Pop(S).num;

iDisplay(S); }

void analysis(char post[100],word m_word[100]) { //将中缀表达式转换为等价的中缀表达式

int i=0,j=0; double sum;

while(post[i]!='#') {

sum=0;

if (post[i]>='0'&&post[i]<='9') {

while(post[i]>='0'&&post[i]<='9') { }

if (post[i]=='.') {

sum*=10;

sum+=(double)(post[i]-'0');//按多位数存储 i++;

return result;

}

}

}

}

i++;

float k=10.0;

while(post[i]>='0'&&post[i]<='9')//按小数存储 { }

sum+=(double)(post[i]-'0')/k; i++; k*=10.0;

m_word[j].type='0'; m_word[j].num=sum; j++;

else { }

m_word[j].type=post[i]; i++;j++;

int main() { double r;

char mid[100]; word m_word[100]; int i=0,m=0;

cout<<\请输入中缀表达式\while(cin>>mid[i]) {

}

if(mid[i]=='#')

break; i++; m++;

}

cout<<\输入的中缀表达式为\for(i=0;i

cout<

cout<

analysis(mid,m_word); word post[100]; int l=0;

cout<<\转换后的后缀表达式为\\n\Exchange(m_word,post,m,l); cout<<\运算结果为\\n\r=Add(post,l); cout<


中缀表达式转换为后缀表达式c++b编程(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青岛版六年级数学上册《第五单元跟踪检测卷》(附答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: