Pagini recente » Cod sursa (job #1228404) | Cod sursa (job #1149385) | Cod sursa (job #1531890) | Cod sursa (job #1046265) | Cod sursa (job #1418863)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fi("evaluare.in");
ofstream fo("evaluare.out");
const int MAX_N = 100005;
char s[MAX_N];
int i=0;
int expresie();
int factor(){
int x=0;
if(s[i]=='('){
i++;
x=expresie();
i++;
}
else while(s[i]>='0' && s[i]<='9'){
x=x*10+s[i]-'0';
i++;
}
return x;
}
int termen(){
int y=factor();
while(s[i]=='*' || s[i]=='/')
if(s[i]=='*'){ i++; y*=factor(); }
else{ i++; y/=factor(); }
return y;
}
int expresie(){
int z=termen();
while(s[i]=='+' || s[i]=='-')
if(s[i]=='+'){ i++; z+=termen(); }
else{ i++; z-=termen(); }
return z;
}
int main(){
fi>>s;
fo<<expresie();
fi.close();
fo.close();
return 0;
}