Pagini recente » Cod sursa (job #2089089) | Cod sursa (job #2622518) | Cod sursa (job #631320) | Cod sursa (job #1747518) | Cod sursa (job #1151397)
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <cstring>
using namespace std;
#define nmax 100005
ifstream in("evaluare.in");
ofstream out("evaluare.out");
char S[nmax], *p=S;
long termen();
long factor();
long eval(){
long r=termen();
while (*p=='+' || *p=='-')
if (*p=='+'){
++p, r+=termen();
break;
} else if (*p=='-'){
++p, r-=termen();
break;
}
return r;
}
long termen(){
long r=factor();
while (*p=='*' || *p=='/')
if (*p=='*'){
++p, r*=factor();
break;
} else if (*p=='/') {
++p, r/=factor();
break;
}
return r;
}
long factor(){
long r=0;
if (*p=='(')
++p, r=eval(), ++p;
else {
while (*p>='0' && *p<='9'){
r=(r*10)+*p-'0';
++p;
}
}
return r;
}
int main(){
in >> p;
out << eval();
return 0;
}