Pagini recente » Cod sursa (job #2890088) | Cod sursa (job #108377) | Cod sursa (job #818707) | Cod sursa (job #434168) | Cod sursa (job #468659)
Cod sursa(job #468659)
#include<fstream>
#include<string>
using namespace std;
char s[100010];
short i=0;
int exp();
int termen();
int factor()
{
int nr = 0;
if(s[i]=='(')
{
++i;
nr = exp();
++i; // sarim peste ')'
}
else
while(isdigit(s[i]))
nr=nr*10+s[i++]-'0';
return nr;
}
int termen()
{
int r = factor();
while(s[i]=='*'||s[i]=='/')
{
if(s[i]=='*') { ++i; r *= factor(); }
else
if(s[i]=='/') { ++i; r /= factor(); }
}
return r;
}
int exp()
{
int r = termen();
while(s[i]=='+'||s[i]=='-')
{
if(s[i]=='+') { ++i; r += termen(); }
else
if(s[i]=='-') { ++i; r -= termen(); }
}
return r;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",&s);
printf("%d",exp());
return 0;
}