• H.简单计算器


    恶心的模拟题......

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main(){
      ios::sync_with_stdio(false);
      // freopen("in.in", "r", stdin);
      vector<double> nums;
      vector<double> nums2;
      vector<char> op, op2;
      char s[205];
      string temp;
      while(1){
        gets(s);
        temp = s;
        if(temp == "0")
          break;
        op.clear();
        op2.clear();
        nums.clear();
        nums2.clear();
        string store = "";
        for(int i=0; i<temp.length(); i++){
          if(temp[i] == '+' || temp[i] == '-' || temp[i] == '*' || temp[i] == '/'){
            op.push_back(temp[i]);
            if(temp[i] == '+' || temp[i] == '-')
              op2.push_back(temp[i]);
            nums.push_back(stoi(store));
            store = "";
          }else if(temp[i] >= '0' && temp[i] <= '9')
            store += temp[i];
        }
        nums.push_back(stoi(store));
    
        for(int i=0; i<nums.size(); i++){
          double a = nums[i];
          double b = nums[i+1];
          if(i < op.size() && op[i] == '*'){
            nums[i+1] = a * b;
          }
          else if(i < op.size() && op[i] == '/'){
            nums[i+1] = a / b;
          }
          else
            nums2.push_back(nums[i]);
    
        }
    
        // for(auto x : op2)
        //   cout << x << " ";
        // cout << endl;
    
        double ans = nums2[0];
        for(int i=0; i<op2.size(); i++){
          double b = nums2[i+1];
          if(op2[i] == '+')
            ans += nums2[i+1];
    
          else if(op2[i] == '-'){
            ans -= nums2[i+1];
          }
          // cout << ans << " " << a << " " << b << endl;
        }
    
        printf("%.2lf
    ", ans);
    
    
      }
      return 0;
    }
  • 相关阅读:
    HDOJ2032_杨辉三角
    素数问题练习_HDOJ1262
    素数问题三步曲_HDOJ2098
    小黄衫的故事
    软件工程实践总结
    Beta吐槽
    Beta版本讨论
    Beta版本总结
    Beat版本冲刺(七)
    Beta版本冲刺(六)
  • 原文地址:https://www.cnblogs.com/ssNiper/p/11361085.html
Copyright © 2020-2023  润新知