Pagini recente » Cod sursa (job #1675695) | Cod sursa (job #1957371) | Cod sursa (job #1127167) | Cod sursa (job #3261658) | Cod sursa (job #2516105)
#include <fstream>
using namespace std;
#define dmax 10001
char s[dmax], *p=s;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
int eval();
int termen();
int factor();
int eval(){
int r=termen();
while (*p=='+' || *p=='-'){
if (*p=='+'){
++p;
r=r+termen();
}
else{
++p;
r=r-termen();
}
}
return r;
}
int termen(){
int r=factor();
while (*p=='*' || *p=='/'){
if (*p=='*'){
++p;
r=r*factor();
}
else{
++p;
r=r/factor();
}
}
return r;
}
int factor(){
int r=0;
if (*p=='('){
++p;
r=eval();
++p;
}
else{
while (*p>='0' && *p<='9'){
r=r*10+*p-'0';
++p;
}
}
return r;
}
int main(){
cin>>s;
cout<<eval();
cin.close();
cout.close();
return 0;
}