hdu 1237 简单计算器(栈)
来源:互联网 发布:数据成熟度模型 编辑:程序博客网 时间:2024/06/10 22:11
1 #include <iostream> 2 #include <cstdio> 3 #include <string> 4 #include <stack> 5 using namespace std; 6 int main() 7 { 8 string s; 9 while (getline(cin, s) && s != "0")10 {11 stack<double> ds;12 stack<char> cs;13 double t, t1, t2;14 char c;15 string::size_type i;16 for (i = 0; i < s.size(); ++i)17 {18 if (s[i] >= '0' && s[i] <= '9')19 {20 t = 0;21 while (s[i] >= '0' && s[i] <= '9')22 {23 t = t * 10 + s[i] - '0';24 ++i;25 }26 ds.push(t);27 }28 else if (s[i] == '+' || s[i] == '-')29 {30 if (cs.empty())31 cs.push(s[i]);32 else33 {34 t1 = ds.top();35 ds.pop();36 t2 = ds.top();37 ds.pop();38 c = cs.top();39 cs.pop();40 if (c == '+')41 t = t1 + t2;42 else43 t = t2 - t1;44 ds.push(t);45 cs.push(s[i]);46 }47 }48 else if (s[i] == '*' || s[i] == '/')49 {50 bool ismul = 0; //标记是乘号还是除号51 if (s[i] == '*')52 ismul = 1;53 i += 2; //求下个数字t254 t2 = 0;55 while (s[i] >= '0' && s[i] <= '9')56 {57 t2 = t2 * 10 + s[i] - '0';58 ++i;59 }60 t1 = ds.top();61 ds.pop();62 if (ismul)63 t = t1 * t2;64 else65 t = t1 / t2;66 ds.push(t);67 }68 }69 while (!cs.empty()) //处理剩下的加减号70 {71 t1 = ds.top();72 ds.pop();73 t2 = ds.top();74 ds.pop();75 c = cs.top();76 cs.pop();77 if (c == '+')78 t = t1 + t2;79 else80 t = t2 - t1;81 ds.push(t);82 }83 printf("%.2f\n", ds.top());84 }85 return 0;86 }
- hdu -1237- 简单计算器(栈实现)
- hdu 1237 简单计算器(栈)
- HDU 1237 简单计算器 (栈)
- 【HDU】1237 - 简单计算器(栈)
- 【HDU】-1237-简单计算器(栈)
- HDU:1237 简单计算器(栈)
- hdu 1237 简单计算器 栈
- HDU 1237 简单计算器(栈)
- HDU 1237:简单计算器【栈】
- HDU - 1237 - 简单计算器(栈)
- HDU-1237 简单计算器【栈】
- 简单计算器(hdu 1237)
- 简单计算器(hdu 1237)
- hdu 简单计算器(栈)
- hdu 1237简单计算器(栈的简单应用)
- HDU 1237 简单计算器
- HDU 1237 简单计算器
- hdu 1237 简单计算器
- 滚动数组(转)
- 1119. Metro(动态规划,滚动数组)
- hdu 1022 Train Problem I(栈)
- ural 1613. For Fans of Statistics
- Windows游戏编程大师技巧之三角形填充
- hdu 1237 简单计算器(栈)
- ural 1821. Biathlon
- hdu 1241 Oil Deposits(dfs入门)
- DFS中的奇偶剪枝(转自chyshnu)
- hdu 1010 Tempter of the Bone(dfs+奇偶剪枝)
- hdu 1312 Red and Black(dfs入门)
- ural 1033. Labyrinth(dfs)
- 图的dfs与bfs(深搜广搜)c++实现
- hdu 1209 Clock(水题)