啊我没搞懂错哪了
查看原帖
啊我没搞懂错哪了
1059776
HSyuio77楼主2023/8/17 21:47
#include<iostream>
#include<cstring>
#include<deque>
#include<cmath>
using namespace std;
int main()
{
    string s;
    cin>>s;
    int i=0;
    int h=0;
    int sum=0;
    deque <int> p;
    int  a[1000000];
    memset(a,0,sizeof(a));
    while(s[i]!='@')
    {
        if(s[i]>='0'&&s[i]<='9')
        {
            a[h]=s[i]-'0';
            h++;
        }
        if(s[i]=='.')
        {
            for(int k=i-h;k<i;k++)
            {
                sum+=a[k]*pow(10,h-(i-k-1)); // 计算数值时需要乘以相应位数的权重
            }       
            p.push_back(sum);
            sum=0;
            h = 0; 
        }
        else
        {
            int x=p.back();
            p.pop_back();
            int y=p.back();
            p.pop_back();
            if(s[i]=='+')
            {
                p.push_back(x+y);
            }
            if(s[i]=='-')
            {
                p.push_back(y-x);
            }
            if(s[i]=='*')
            {
                p.push_back(y*x);
            }
            if(s[i]=='/')
            {
                p.push_back((float)y/x);
            }
        }
        i++;
    }
    cout<<p.back();
    return 0;
}
2023/8/17 21:47
加载中...