Pagini recente » Cod sursa (job #334686) | Cod sursa (job #1720893) | Cod sursa (job #3130321) | Cod sursa (job #1820521) | Cod sursa (job #1116415)
#include<cstdio>
using namespace std;
#define MAX 100001
char s[MAX];
int i;
int eval();
int t();
int f();
int main()
{
freopen("evaluare.in" , "r" , stdin );
freopen("evaluare.out" , "w" , stdout );
scanf("%s" , s );
printf("%d" , eval());
return 0;
}
int eval()
{
int rez = t();
while(s[i] == '+' || s[i] == '-'){
if(s[i] == '+')
i++,rez+=t();
else
i++,rez-=t();}
return rez;
}
int t()
{
int rez = f();
while(s[i] == '/' || s[i] =='*'){
if(s[i] == '/')
i++,rez/=f();
if(s[i] == '*')
i++,rez*=f();}
return rez;
}
int f()
{
int x = 0;
if(s[i] == '(')i++,x = eval(),i++;
while(s[i] >='0' && s[i] <= '9')
x = x*10+s[i++]-48;
return x;
}