UVA 327 Evaluating Simple C Expressions
2011-12-29 18:18
501 查看
UVA_327
模拟题目所说的即可。
模拟题目所说的即可。
#include<stdio.h> #include<string.h> #include<ctype.h> #define MAXD 200 int pre[MAXD], vis[MAXD], last[MAXD]; char b[MAXD], st1[MAXD], st2[MAXD], st3[MAXD]; void solve() { int i, j, k, n1, n2, n3, res; for(i = 'a'; i <= 'z'; i ++) { pre[i] = i - 'a' + 1; last[i] = vis[i] = 0; } for(i = n1 = 0; b[i]; i ++) { if(isalpha(b[i])) vis[b[i]] = 1; if(b[i] != ' ') st1[n1 ++] = b[i]; } for(i = n2 = 0; i < n1; i ++) { if(i + 2 < n1 && st1[i] == '+' && st1[i + 1] == '+' && isalpha(st1[i + 2])) { ++ pre[st1[i + 2]]; ++ i; } else if(i + 2 < n1 && st1[i] == '-' && st1[i + 1] == '-' && isalpha(st1[i + 2])) { -- pre[st1[i + 2]]; ++ i; } else st2[n2 ++] = st1[i]; } for(i = n3 = 0; i < n2; i ++) { st3[n3 ++] = st2[i]; if(i + 2 < n2 && isalpha(st2[i]) && st2[i + 1] == '+' && st2[i + 2] == '+') { ++ last[st2[i]]; i += 2; } else if(i + 2 < n2 && isalpha(st2[i]) && st2[i + 1] == '-' && st2[i + 2] == '-') { -- last[st2[i]]; i += 2; } } res = pre[st3[0]]; for(i = 1; i < n3; i += 2) { if(st3[i] == '+') res += pre[st3[i + 1]]; else res -= pre[st3[i + 1]]; } printf(" value = %d\n", res); for(i = 'a'; i <= 'z'; i ++) if(vis[i]) printf(" %c = %d\n", i, pre[i] + last[i]); } int main() { while(gets(b) != NULL) { printf("Expression: %s\n", b); solve(); } return 0; }
相关文章推荐
- uva 327 Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- UVa 327 Evaluating Simple C Expressions (模拟)
- uva 327 Evaluating Simple C Expressions(遍历)
- UVA 327 -Evaluating Simple C Expressions(栈)
- 数据结构 uva-327-Evaluating Simple C Expressions
- UVA 327 Evaluating Simple C Expressions
- UVA 327 - Evaluating Simple C Expressions(枚举就OK)
- UVa 327 - Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- uva 327--Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- UVA_327_Evaluating Simple C Expressions
- uva_327_Evaluating Simple C Expressions
- Uva 327 - Evaluating Simple C Expressions
- UVA - 327 Evaluating Simple C Expressions
- uva 327 Evaluating Simple C Expressions