UVa 327 - Evaluating Simple C Expressions
来源:互联网 发布:海外淘软件 编辑:程序博客网 时间:2024/06/07 05:48
題目:給你一些C語言表達式,字母a~z代表初始值為1~26的變量,計算表達式的值以及計算后的個變量的值。
分析:模擬。模擬計算即可,因為式子簡單,沒有複雜的結合,直接判斷字母前後相鄰的相同符號為一組。
說明:╮(╯▽╰)╭。
#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>using namespace std;char expression[121] = "#";int value[26], appear[26];int before(char str[], int index){if (index > 0) index --;while (str[index] == ' ')index --;return index;}int after(char str[], int index){index ++;while (str[index] == ' ')index ++;return index;}int main(){while (gets(&expression[1])) {expression[strlen(expression)+1] = 0;expression[strlen(expression)] = '#';for (int i = 0; i < 26; ++ i) {value[i] = i+1;appear[i] = 0;}int ans = 0, b1, b2, a1, a2, op, test;for (int i = 1; expression[i] != '#'; ++ i) {if (expression[i] >= 'a' && expression[i] <= 'z') {appear[expression[i]-'a'] = 1;b2 = before(expression, b1 = before(expression, i));a2 = after (expression, a1 = after (expression, i));//beforeif (expression[b1] == '+' && expression[b2] =='+')value[expression[i]-'a'] ++;if (expression[b1] == '-' && expression[b2] == '-')value[expression[i]-'a'] --;//valueif ((expression[b1] == '+' && expression[b2] == '+') || (expression[b1] == '-' && expression[b2] == '-'))op = before(expression, b2);else op = b1;test = before(expression, op);//printf("<%d %d %d>\n",b1,b2,op);if (expression[op] == '#')ans = value[expression[i]-'a'];else if (expression[test] == '#') {if (expression[op] == '-')ans = -value[expression[i]-'a'];else ans = value[expression[i]-'a'];}else {if (expression[op] == '-')ans = ans - value[expression[i]-'a'];else ans = ans + value[expression[i]-'a'];}//afterif (expression[a1] == '+' && expression[a2] =='+')value[expression[i]-'a'] ++;if (expression[a1] == '-' && expression[a2] == '-')value[expression[i]-'a'] --;}}expression[strlen(expression)-1] = 0;printf("Expression: ");puts(&expression[1]);printf(" value = %d\n",ans);for (int i = 0; i < 26; ++ i)if (appear[i])printf(" %c = %d\n",i+'a',value[i]);} return 0;}
0 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
- 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
- php5.5.12+redis2.6 Windwos安装下安装
- iOS开发调试技巧总结
- P与NP问题的简单解释
- Department Top Three Salaries
- 微信获取accesstoken以及openID
- UVa 327 - Evaluating Simple C Expressions
- NoNodeAvailableException[None of the configured nodes are available
- android L和android M的区别
- FFMPEG 截取RTMP直播流图片命令
- Android 避免Activity重复创建 一次finish()返回上个页面
- 自定义ViewGroup的使用
- makefile中的notdir,wildcard和patsubst
- 转IBM官网 利用 Java dump 进行 JVM 故障诊断
- HBASE安装配置