Pagini recente » Cod sursa (job #584022) | Cod sursa (job #3171628) | Cod sursa (job #2225998) | Cod sursa (job #1233677) | Cod sursa (job #1831579)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100010], *p=s;
int eval();
int termen();
int fact();
int eval()
{
int r=termen();
while(*p=='+'||*p=='-') {
if(*p=='+') {
++p;
r+=termen();
}
else {
++p;
r-=termen();
}
}
return r;
}
int termen()
{
int r=fact();
while(*p=='*'||*p=='/') {
if(*p=='*') {
++p;
r*=fact();
}
else {
++p;
r/=fact();
}
}
return r;
}
int fact()
{
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 ()
{
f.getline(s, 100010);
g<<eval();
return 0;
}