Pagini recente » Cod sursa (job #2092003) | Cod sursa (job #2204400) | Cod sursa (job #1350291) | Cod sursa (job #1272954) | Cod sursa (job #2728442)
#include <bits/stdc++.h>
#define LMAX 2
using namespace std;
ifstream fin ("evaluare.in");
ofstream fout("evaluare.out");
char s[100009];
char op[2][4] = { "+-", "*/"};
int poz=0;
int evaloare(int a,int b,char op){
if(op=='+') return a+b;
if(op=='-') return a-b;
if(op=='*') return a*b;
if(op=='/') return a/b;
}
int expresie(int nivel){
int x=0,y=0;
if(nivel==LMAX){
if(s[poz]=='('){
poz++;
x=expresie(0);
poz++;
}
else
while(isdigit(s[poz]))
x=x*10+s[poz++]-'0';
}
else{
x=expresie(nivel+1);
if(strchr(op[nivel],s[poz])){
y=evaloare(x,expresie(nivel+1),s[poz++]);
x=y;
}
}
return x;
}
int32_t main()
{
fin>>s;
fout<<expresie(0);
}