深圳成交型网站建设公司,邵阳县网站建设公司沙河网站建设公司,株洲企业关键词优化最新报价,网站导航栏不显示题目描述
所谓后缀表达式是指这样的一个表达式#xff1a;式中不再引用括号#xff0c;运算符号放在两个运算对象之后#xff0c;所有计算按运算符号出现的顺序#xff0c;严格地由左而右新进行#xff08;不用考虑运算符的优先级#xff09;。
本题中运算符仅包含 -*…题目描述
所谓后缀表达式是指这样的一个表达式式中不再引用括号运算符号放在两个运算对象之后所有计算按运算符号出现的顺序严格地由左而右新进行不用考虑运算符的优先级。
本题中运算符仅包含 -*/ \texttt{-*/} -*/。保证对于 / \texttt{/} / 运算除数不为 0。特别地其中 / \texttt{/} / 运算的结果需要向 0 取整即与 C / 运算的规则一致。
如 3*(5-2)7 \texttt{3*(5-2)7} 3*(5-2)7 对应的后缀表达式为 3.5.2.-*7. \texttt{3.5.2.-*7.} 3.5.2.-*7.。在该式中 为表达式的结束符号。. 为操作数的结束符号。
输入格式
输入一行一个字符串 s s s表示后缀表达式。
输出格式
输出一个整数表示表达式的值。
样例 #1
样例输入 #1
3.5.2.-*7.样例输出 #1
16样例 #2
样例输入 #2
10.28.30./*7.-样例输出 #2
-7提示
数据保证 1 ≤ ∣ s ∣ ≤ 50 1 \leq |s| \leq 50 1≤∣s∣≤50答案和计算过程中的每一个值的绝对值不超过 1 0 9 10^9 109。
#includebits/stdc.h
int stack[101];
char s[256];
int comp(char s[256]){int i0,top0,x;while(istrlen(s)-2){switch(s[i]){case :stack[--top]stack[top1];break;case -:stack[--top]-stack[top1];break;case *:stack[--top]*stack[top1];break;case /:stack[--top]/stack[top1];break;default:x0;while(s[i]!.) xx*10s[i]-0;stack[top]x;break;}i;}return stack[top];
}
main(){gets(s);printf(%d,comp(s));return 0;
}栈