> 文档中心 > C++ 后缀表达式求值

C++ 后缀表达式求值


📋 个人简介

🎉大家好,我是3月份新人榜排名第三的 ༺Blog༒Hacker༻
💬支持我:点赞👍+收藏⭐️+留言📝
🌺格言:༺永做优质༒programmer༻

📣后缀表达式求值

【问题描述】
读入一个后缀表达式(字符串),只含有0-9组成的运算数及
加(+)、减(−)、乘(∗)、除(/,整除)四种运算符,以及空格

每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以’#'作为结束标志。

保证中间的运算过程不会爆INT

【输入格式】
一行字符,如【题目描述】。

【输出格式】
一个整数,表示表达式的值。

【输入样例】

16 9 4 3 +*-#

【输出样例】

-47

数据规模与约定

表达式长度小于255

💯CODE

#include#includeusing namespace std;int stack[260];int top=0;int main(){char a[260];cin.getline(a,260);int i=0,x=0,t1,t2;while(a[i]!='#'){if(a[i]>='0' && a[i]<='9'){x=0;while(a[i]>='0' && a[i]<='9'){x=x*10+a[i]-'0';i++;}stack[++top]=x;}if(a[i]=='+'){t1=stack[top--];t2=stack[top--];stack[++top]=t1+t2;}else if(a[i]=='*'){t1=stack[top--];t2=stack[top--];stack[++top]=t1*t2;}else if(a[i]=='-'){t2=stack[top--];t1=stack[top--];stack[++top]=t1-t2;}else if(a[i]=='/'){t2=stack[top--];t1=stack[top--];stack[++top]=t1/t2;}i++;}cout<<stack[top];return 0;}

🔮朋友们,点赞是我更新的动力,明天再见,拜拜!!!

在这里插入图片描述