6263:布尔表达式 高位横盘 • 2022-10-21 • 随笔 • 阅读 9 6263:布尔表达式 #include using namespace std; #include #include char relate[7][7] = { // ! & | ( ) # {'=', '>', '>', '<', '>', '>'}, // ! {'<', '>', '>', '<', '>', '>'}, // & {'<', '<', '>', '<', '>', '>'}, // | {'<', '<', '<', '<', '=', '0'}, // ( {'0', '>', '>', '0', '>', '>'}, // ) {'<', '<', '<', '<', '0', '='} // # }; mapsym; void init() { sym['!'] = 0; sym['&'] = 1; sym['|'] = 2; sym['('] = 3; sym[')'] = 4; sym['#'] = 5; } string removeFormate(string str) { int n = str.size(); string temp; for(int i=0; i') { //cout<<">"< 思路参考作者:(1条消息) 【模板题】【栈】表达式求值问题总结:6263:布尔表达式,01:简单算术表达式求值,4132:四则运算表达式求值(终极BOSS)_Always_ease的博客-CSDN博客 易错注意: (1)题目中给的例子,符号与符号之间有时会存在空格,而cin是遇空格和换行停止输入,所以cin不能用。使用了可以输入空格的!getline(cin,str) (1条消息) C++如何输入含空格的字符串_zhouhongkai06的博客-CSDN博客_c++输入带空格的字符串 (2)前后两个#的作用: 第一个#:作为最小优先级,起到和符号比较,防止符号数组中为空无法进行比较 !第二个#:当实现第三个案例会发现错误(不加#)。#控制循环,使表中除#以外的符号都进入运算,否则字符串遍历完有符号还未进行运算 (3) !s = judge(sign[m2-1],str[i]); 最新的和已存的符号进行比较优先级,如果优先级低于前面(一个)则运算前面的(运算完要删除),如果优先级高于前面则存入继续判断等待“优先级低于前面”的情况 (4)map的使用: (1条消息) C++(17):map的初始化_Leo的博客-CSDN博客_c++ map初始化 栈的形式实现: 待续…… 欢迎分享,转载请注明来源:内存溢出原文地址: http://outofmemory.cn/zaji/3970495.html 优先级 符号 表达式 空格 运算 赞 (0) 打赏 微信扫一扫 支付宝扫一扫 高位横盘 一级用户组 0 0 生成海报 奇数单增序列 上一篇 2022-10-21 链栈的C语言实现 下一篇 2022-10-21 发表评论 请登录后评论... 登录后才能评论 提交 评论列表(0条)
评论列表(0条)