Pagini recente » Cod sursa (job #1420854) | Monitorul de evaluare | Cod sursa (job #2484888) | Cod sursa (job #3331425)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
const int DMAX=100001;
char S[DMAX],*p=S;
int expresie();
int termen();
int factor();
int expresie() {
int r=termen();
while(*p=='+'||*p=='-') {
if(*p=='+') {
++p;
r+=termen();
} else {
++p;
r-=termen();
}
}
return r;
}
int termen() {
int r=factor();
while(*p=='*'||*p=='/') {
if(*p=='*') {
++p;
r*=factor();
} else {
++p;
r/=factor();
}
}
return r;
}
int factor() {
int r=0;
if(*p=='(') {
++p;
r=expresie();
++p;
} else {
while(*p>='0'&&*p<='9') {
r=r*10+*p-'0';
++p;
}
}
return r;
}
int main() {
f.getline(S,DMAX);
g<<expresie();
f.close();
return 0;
}