Cod sursa(job #3333894)

Utilizator iustin.dumiDumitrescu Iustin iustin.dumi Data 15 ianuarie 2026 15:35:57
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int i=0;
int expresie();
int termen();
int factor();
int numar();
int expresie()
{
    int a=termen();
    while(s[i]=='+' || s[i]=='-')
    {
        if(s[i]=='+')
          {i++;
           a+=termen();
          }
        else
          {i++;
           a-=termen();
          }
    }
    return a;
}
int termen()
{
    int a=factor();
    while(s[i]=='*' || s[i]=='/')
    {
        if(s[i]=='*')
          {i++;
           a*=factor();
          }
        else
          {i++;
           a/=factor();
          }
    }
    //cout<<a<<endl;
    return a;
}
int factor()
{
    int a;
    if(s[i]=='(')
        {i++;
         a=expresie();
         //cout<<a<<endl;
         i++;
        }
    else a=numar();

    cout<<a<<" "<<1<<endl;
    return a;
}
int numar()
{
    int a;
    while(s[i]>='0' && s[i]<='9')
    {
        a=a*10+s[i]-'0';
        i++;
    }
    return a;
}

int main()
{ fin>>s;
  fout<<expresie();
    return 0;
}