zoukankan      html  css  js  c++  java
  • 简单计算器

    很方,不包括括号的计算器都做不出,只能借鉴学长们的思路,感觉小脑袋瓜还不够机灵!!!

    题目:读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。

    要求:测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。

    思路:主要是区分乘除法的优先级,一开始想着数字运算符分开算,但无法实施!学长们的思路挺好,建立个数栈,依次放入,若遇到乘除只要将栈顶与这个数想乘除在放入就可以了!!!

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<set>
    #include<vector>
    #include<stack>
    #include<queue>
    #include<algorithm>
    using namespace std;
    int main()
    {
       double a,b,sum;
       char c;
       while(cin>>a)
       {
           sum=0;
           stack <double >s;
           c=getchar();
           s.push(a);
           if(a==0&&c=='
    ') break;
           c=getchar();
        getchar();
        while(cin>>b)
        {
    
          switch(c)
          {
          case '*':
              a=s.top();
              s.pop();
              s.push(a*b);
              break;
          case '/':
              a=s.top();
              s.pop();
              s.push(a/b);
              break;
          case '+':
            s.push(b);
            break;
          case '-':
            s.push(-b);
            break;
        }
        c=getchar();
        if(c=='
    ') break;
        c=getchar();
        getchar();
    }
          while(!s.empty())
          {
              sum+=s.top();
              s.pop();
    
    
          }
          printf("%.2f
    ",sum);
    
    }
    return 0;
    }
  • 相关阅读:
    六种简单易理解的排序算法
    leetcode-數組篇
    leetcode-字符串篇
    java8 Optional优雅非空判断
    md2all 简单实用
    zooleeper面试题
    深入理解 JVM锁 与 分布式锁
    redission 高性能分布式锁
    Java传统 定时任务
    关于Zookeeper
  • 原文地址:https://www.cnblogs.com/blvt/p/7200792.html
Copyright © 2011-2022 走看看