当前位置: 首页 > news >正文

建设视频网站的视频源软文营销的本质

建设视频网站的视频源,软文营销的本质,大学生网站建设与网页设计报告,wordpress雪人主题2.0文章目录题目描述思路使用getline()存储输入的字符串边读取边压栈完整代码题目描述 使用stack处理括号化的表达式。当你看到一个左括号#xff0c;将其记录下来。当你在一个左括号之后看到一个右括号#xff0c;从stack中pop对象#xff0c;直至遇到左括号#xff0c;将左括… 文章目录题目描述思路使用getline()存储输入的字符串边读取边压栈完整代码题目描述 使用stack处理括号化的表达式。当你看到一个左括号将其记录下来。当你在一个左括号之后看到一个右括号从stack中pop对象直至遇到左括号将左括号也一起弹出栈。然后将一个值括号内的运算结果push到栈中表示一个括号化的子表达式已经处理完毕被其运算结果所替代。 思路 使用getline()存储输入的字符串 是为了避免cin在提取字符串时遇到空格会终止读取的问题。例如 // 当输入1 *2时 cin s; // s为1 getline(cin, s); // s为1 *2边读取边压栈 创建两个栈 一个用来存运算符一个用来存操作数 当遇到 “)” 时弹出运算符栈中的运算符、和对应的操作数栈中的操作数并进行计算直到遇到 “(” 完成后将这期间的运算结果压入操作数栈。例如 处理 “ () ” 时将12作为操作数从nums栈中弹出将处理结果3压入nums栈中当然 “ () ” 三个运算符全部弹出symbol栈。之后 遇到右括号时将乘号、左括号弹出栈在这过程中将3、4作为操作数弹出nums栈进行运算之后将运算结果压入nums栈。 当处理完全部括号后将symbol栈中的运算符清空——也就是将对应的运算都进行计算在此过程中减法和除法要注意操作数的先后问题 当symbol栈中为空时nums栈中仅有一个元素也就是最终的计算结果。 完整代码 #include iostream #include stack #include stringusing namespace std;void resolve(stackdouble s1, stackchar s2){while((!s2.empty()) (s2.top() ! ()){char temp s2.top();s2.pop();double num1 s1.top(); //second//cout num1: num1 endl;s1.pop();double num2 s1.top(); //first//cout num2: num2 endl;s1.pop();if(temp *){s1.push(num1*num2);//cout * endl;}if(temp /){s1.push(num2/num1); // 注意操作数的顺序//cout / endl;}if(temp ){s1.push(num1num2);//cout endl;}if(temp -){ // 注意操作数的顺序s1.push(num2-num1);//cout - endl;}}if(!s2.empty()){ // 当symbol栈不为空的时候if(s2.top() (){ // 遇见左括号也会跳出上述循环 s2.pop(); // 因此无法执行while中的pop} // 程序会一直卡在左括号的位置} // 所以在这里补上pop避免上述问题}double calculate(string s) {if(s.empty()){return 0;}stackdouble nums;stackchar symbol;double num 0;string temp ; // 存储连续数值字符for(size_t i 0; i s.size(); i){if((s[i] 0 s[i] 9) || s[i] .){ // 数字temp s[i]; // 连续数值字符}if(((s[i]0||s[i]9)s[i]! ) || is.size()-1){ // 运算符if(!temp.empty()){num stod(temp); // num存储连续数值字符的终值nums.push(num);}if(s[i] )){resolve(nums, symbol);}else{switch (s[i]) {case (:case :case -:case *:case /:symbol.push(s[i]); // 上述五种运算符直接压栈}}num 0;temp.clear(); // 清空temp以便存储下一个连续数值字符}}resolve(nums, symbol);return nums.top(); }bool pankong(string str){ // 判断左右括号是否数量一致int left 0;int right 0;for(auto beg str.begin(); beg ! str.end(); beg){switch (*beg) {case ): right; break;case (: left; break;}}if(left ! right){cout 左右括号数量不对等 endl;return false;}else{return true;} }int main() {string str; // 表达式double over; // 最终值//cin str;getline(cin,str);if(!pankong(str)){ // 判断左右括号数量是否一致return -1;}over calculate(str);cout over: over endl;return 0; }
http://wiki.neutronadmin.com/news/198571/

相关文章:

  • 网站查询是否安全高德地图无目的地导航
  • 官方网站下载微信网站logo用什么做
  • 兰州网站推广站长工具官方网
  • 北京网站建设一站式服务wordpress支持iframe
  • 太原北京网站建设公司哪家好湛江网站建设方案托管
  • 科技园区建设网站的意义企业建设网站目的
  • 网上打字兼职正规网站wordpress主题打开慢
  • 福州网站设计哪家做的好购物网站开发问题域分析
  • 网页制作与网站建设实战大全光盘wordpress悬浮窗插件
  • 网站制作学什么上海 互联网公司
  • 注册公司网站多少钱wordpress 名站
  • 深圳微信网站个人网站设计论文摘要
  • 做网站没有成本费用如何做账国际化网站
  • 企业门户网站模板高中网站建设计划表
  • 正规专业的网站建设公网上做网站任务
  • 2017网站icp备案青岛北京网站建设价格
  • 网站推广指标包括( )。网站开发与应用
  • 衡阳网站建设报价方案专业的网站建设价格
  • 网站建设不完整 审核惠州专门做网站
  • 徐州住房与建设局网站微信做网站的公司
  • 拓者设计吧官方网站网站常用字体大小
  • 团购网站 seo弄个网站多少钱
  • 知识产权教育平台网站开发总结怎么能让我的网站被百度收录
  • 上饶市网站建设公司国外有哪些做建筑材料的网站
  • 用路由器做网站网站建设成功案例书籍
  • asp企业网站cms界面设计属于什么专业
  • 电子商务专业网站设计开个免费一代发网店
  • c#如何做公司网站wordpress 准迁
  • vs网站开发入门网站优化公司排名
  • 综合服务门户网站建设下载学校网站模板下载地址