Pagini recente » Cod sursa (job #1025404) | Cod sursa (job #2719717) | Cod sursa (job #101928) | Cod sursa (job #2535385) | Cod sursa (job #2906834)
#include <fstream>
//#include <iostream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char v[100000];
int i,n = 0,cnt1 = 0,cnt2 = 0;
int solve();
int f(){
int r = 0;
if(v[i] == '('){
i++;
r = solve();
i++;
}else while(i < n && '0' <= v[i] && v[i] <= '9'){
r = r*10 + v[i] - '0';
i++;
}
return r;
}
int inm(){
int nr = f();
while(i < n && (v[i] == '*' || v[i] == '/')){
i++;
if(v[i - 1] == '*'){
nr*=f();
}else{
nr/=f();
}
}
return nr;
}
int solve(){
int nr = inm();
while(i < n && (v[i] == '+' || v[i] == '-')){
i++;
if(v[i - 1] == '+'){
nr+=inm();
}else{
nr-=inm();
}
}
return nr;
}
int main()
{
while(fin>>v[n++]);
i = 0;
fout<<solve();
return 0;
}