• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

逆波兰表达式学习日记(2)

mysql 搞代码 4年前 (2022-01-09) 10次浏览 已收录 0个评论

鉴于今天星期三,下午常规没课。而且后缀求结果也挺简单的,就先把这个写完吧。 之前已经转化完了表达式,现在只要把一群数字和加减乘除运算一下就OK了(说实话,有点懒了,最近长春PM2.5有点高,

本文来源gao!daima.com搞$代!码#网#

我根本就没有兴趣搞ACM嘛) int change(char *a) { stack int

鉴于今天星期三,下午常规没课。而且后缀求结果也挺简单的,就先把这个写完吧。

之前已经转化完了表达式,现在只要把一群数字和加减乘除运算一下就OK了(说实话,有点懒了,最近长春PM2.5有点高,我根本就没有兴趣搞ACM嘛)

int change(char *a)
{
stack t;
int i=0;
while(a[i]!=’\0′)
{
if(a[i]>=’0’&&a[i]<='9') //遇到0-9就压入
{
t.push((int)a[i++]-‘0’);
}
else
{
int num1,num2;
num1=t.top();t.pop();
num2=t.top();t.pop();
switch(a[i++]) //有运算符的话,先把数字取出来,然后运算后的结果压进去
{
case ‘+’:num1+=num2;t.push(num1);break;
case ‘-‘:num2-=num1;t.push(num2);break;
case ‘*’:num1*=num2;t.push(num1);break;
case ‘/’:num2/=num1;t.push(num2);break;
}
}
}
return t.top(); //最后,栈内留下的最后一个数就是你要的结果啦
}

因为有点想看看数据结构后面的东西了,所以有点着急结束,这两个函数只能针对个位数的运算,没有在后缀表达式插入空行来区分数字,那就留着我之后再去写吧。。(困)

over


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:逆波兰表达式学习日记(2)
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址