Pagini recente » Cod sursa (job #161060) | Cod sursa (job #1831567)
#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;
}