Cod sursa(job #3333867)

Utilizator monica_LMonica monica_L Data 15 ianuarie 2026 15:05:20
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
//  Evaluarea unei expresii

#include <fstream>
#include <string>
using namespace std;

ifstream cin("evaluare.in");
ofstream cout("evaluare.out");

int i;
string s;

int expresie();
int termen();

int factor()
{
    int ans=0;

    if(s[i]=='(') {i++; ans=expresie(); i++;}
    else while (s[i]>='0' && (s[i]<='9')
           { 
             ans=ans*10 + s[i]-'0'; 
             i++; 
           }

    return ans;
}

int expresie()
{
    int ans=termen();
    while(s[i]=='+' || s[i]=='-')
    {
        if(s[i]=='+') { i++; ans+=termen(); }
        else { i++; ans-=termen(); }
    }
    return ans;
}

int termen()
{
    int ans=factor();
    while(s[i]=='*' || s[i]=='/')
    {
        if(s[i]=='*') { i++; ans*=factor(); }
        else { i++; ans/=factor(); }
    }
    return ans;
}

int main()
{
    cin>>s;
    cout<<expresie();
    return 0;
}