Pagini recente » Cod sursa (job #1152100) | Cod sursa (job #2246788) | Cod sursa (job #1596385) | Cod sursa (job #2032693) | Cod sursa (job #293388)
Cod sursa(job #293388)
#include<fstream>
using namespace std;
char s[100010],*p=s;
long long termen();
long long factor();
long long eval()
{ long long r=termen();
while( *p=='+'||*p=='-')
switch(*p)
{ case '+' : ++p,r+=termen(); break;
case '-' : ++p,r-=termen(); break;
}
return r;
}
long long termen()
{
long long r=factor();
while( *p=='*'|| *p=='/' )
switch(*p)
{ case '*': ++p,r*=factor(); break;
case '/': ++p,r/=factor(); break;
}
return r;
}
long long factor()
{ long 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()
{
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f.get(s,100005);
g<<eval();
f.close();
g.close();
return 0;
}