Cod sursa(job #3187412)

Utilizator anastasiadumitru3Dumitru Anastasia anastasiadumitru3 Data 28 decembrie 2023 19:49:45
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>

using namespace std;
#define MAX_S 100000
string s;
int sindex;
int adunare();
int factor(){
    int nr;
   if(s[sindex]=='('){
    sindex++;
    nr=adunare();
    sindex++;
   }
   else{
nr=0;
while(s[sindex]>='0' && s[sindex]<='9'){
   nr=nr*10+(s[sindex]-'0');
   sindex++;
}
   }
return nr;
}
int inmultire(){
    int rez;
    rez=factor();
    while(s[sindex]=='*' || s[sindex]=='/'){
    if(s[sindex]=='*'){
    sindex++;
    rez*=factor();
    }
    else{
    sindex++;
    rez/=factor();
    }
    }
    return rez;
}
int adunare(){
    int rez;
    rez=inmultire();
    while(s[sindex]=='+' || s[sindex]=='-'){
    if(s[sindex]=='+'){
    sindex++;
    rez+=inmultire();
    }
    else{
    sindex++;
    rez-=inmultire();
    }
    }
    return rez;
}

int main()
{
    ifstream in("evaluare.in");
    ofstream out("evaluare.out");
    in>>s;
    sindex=0;
    out<<adunare();
    return 0;
}