【栈】洛谷 P1449 后缀表达式

来源:互联网 发布:情义我心知黎明 编辑:程序博客网 时间:2024/06/06 03:11

题目描述

所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。

如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。

输入输出格式

输入格式:
输入:后缀表达式

输出格式:
输出:表达式的值

输入输出样例

输入样例#1:
3.5.2.-*7.+@
输出样例#1:
16

说明

字符串长度,1000内。

代码

#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>using namespace std;int stack[1001];char s[1001];int comp(char s[]){    int i=0,top=0,x,y;    while(i<=strlen(s)-2)    {        switch(s[i])        {            case'+':stack[--top]+=stack[top+1];                    break;            case'-':stack[--top]-=stack[top+1];                    break;            case'*':stack[--top]*=stack[top+1];                    break;            case'/':stack[--top]/=stack[top+1];                    break;            default:x=0;                    while(s[i]!='.')x=x*10+s[i++]-'0';                    stack[++top]=x;                    break;        }        i++;    }    return stack[top];}int main(){    scanf("%s",s);    printf("%d",comp(s));    return 0;}
0 0
原创粉丝点击