作业介绍

文件读写

freopen("A.in", "r", stdin);
freopen("A.out", "w", stdout);

栈的重点函数

stack<int> s;   //创建一个装数字的栈
s.push(5);    //把5压入栈
s.size();    //获取栈的长度(站里面有多少个元素)
s.top();      //栈顶元素
s.pop();      //删除栈顶元素

第4题

#include <bits/stdc++.h>
using namespace std;

string s;
stack<int> q;
int num;
int start;  //start表示的是从哪个位置开始是运算符号
int main() {
    getline(cin, s);
    int len = s.size();
    //16 9 4 3 +*-@

    for(int i=0; i<len; i++){
        if(s[i]>='0' && s[i]<='9') num = num * 10 + s[i] - '0';
        else{
            q.push(num);
            num = 0;
            if(s[i]=='+' || s[i]=='-' || s[i]=='*' || s[i]=='/'){
                start = i;   //获取到第一个运算符的位置
                break;
            }
        }
    }

    q.pop();
    for(int i=start; s[i]!='@'; i++){
        int a = q.top(); q.pop();  //获取第一个,删除第一个
        int b = q.top(); q.pop();  //获取第二个,删除第二个
        if(s[i]=='+'){
            q.push(a+b);
        }
        if(s[i]=='-'){
            q.push(b-a);
        }
        if(s[i]=='*'){
            q.push(a*b);
        }
        if(s[i]=='/'){
            q.push(b/a);
        }
    }
    cout << q.top();
    return 0;
}
状态
已结束
题目
5
开始时间
2024-5-4 0:00
截止时间
2024-5-11 23:59
可延期
24 小时