Pagini recente » Cod sursa (job #72155) | Cod sursa (job #1815484) | Cod sursa (job #2687774) | Cod sursa (job #1530130) | Cod sursa (job #1512114)
#include <stdio.h>
#define maxn 100010
using namespace std;
char s[maxn];
int k = 0;
int termen();
int factor();
int parsare();
int termen()
{
int sol = factor();
while(s[k] == '+' || s[k] == '-')
{
k++;
if(s[k - 1] == '+')
sol += factor();
else
sol -= factor();
}
return sol;
}
int factor()
{
int sol = parsare();
while(s[k] == '*' || s[k] == '/')
{
k++;
if(s[k - 1] == '*')
sol *= parsare();
else
sol /= parsare();
}
return sol;
}
int parsare()
{
int sol = 0;
if(s[k] == '(')
{
k++;
sol = termen();
k++;
}
else
for(; s[k] >= '0' && s[k] <= '9'; k++)
sol = sol * 10 + s[k] - '0';
return sol;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w", stdout);
scanf("%s",s);
printf("%d",termen());
fclose(stdin);
fclose(stdout);
return 0;
}