南阳理工OJ_题目305 表达式求值
2014-04-21 13:35
309 查看
#include <iostream> #include <cstring> #include <cstdio> using namespace std; void push_op(char c); char pop_op(); void push_num(int n); int pop_num(); char ch[310]; char op[110]; int num[110]; int op_top; int num_top; int main() { int T; int len; cin >> T; while(T--) { cin >> ch; op_top = 0; num_top = 0; len = strlen(ch); if(ch[0] >= '0' && ch[0] <= '9') { cout << ch << endl; continue; } int flag = 1; for(int i = 0; i < len; i++) { if( !(ch[i] >= '0' && ch[i] <= '9') ) flag = 1; if(ch[i] == '(') { push_op(ch[i-1]); } if(ch[i] >= '0' && ch[i] <= '9' && flag == 1) { int a; sscanf(&ch[i], "%d", &a); push_num(a); flag = 0; } if(ch[i] == ')') { int a, b; a = pop_num(); b = pop_num(); switch(pop_op()) { case 'n': if(a > b) push_num(b); else push_num(a); break; case 'x': if(a < b) push_num(b); else push_num(a); break; case 'd': push_num(a+b); } } } cout << num[0] << endl; } } void push_op(char c) { op[op_top++] = c; } char pop_op() { return op[--op_top]; } void push_num(int n) { num[num_top++] = n; } int pop_num() { return num[--num_top]; }
相关文章推荐
- 南阳oj 表达式求值 题目305 数据结构
- 南阳oj题目35 表达式求值【栈的应用】
- nyoj 题目305 表达式求值
- 南阳 oj 表达式求值 题目35 数据结构 NYOj
- 南阳 oj 表达式求值 题目35 数据结构 NYO题目链接
- nyoj305 表达式求值(递归)
- NYOJ 题目35 表达式求值 (栈的应用)前中后缀,
- nyoj 305 表达式求值
- NYOJ-305-表达式求值-2013年8月8日10:44:12
- NYOJ 305 表达式求值
- 南阳理工 oj 题目38 布线问题
- 南阳理工OJ_题目21 三个水杯
- 南阳理工OJ_题目745 蚂蚁的难题(二)&&题目983 首尾相连数组的最大子数组和
- NYOJ305 表达式求值
- nyoj305表达式求值(数据结构---栈)
- 华为OJ表达式求值
- 南阳理工OJ_题目709 异形卵
- D的小L (南阳理工oj 题目366)
- 南阳理工OJ_题目14 会场安排问题
- 表达式求值(OJ)