Pagini recente » Cod sursa (job #1501373) | Cod sursa (job #2927928) | Cod sursa (job #1351368) | Cod sursa (job #2389034) | Cod sursa (job #157615)
Cod sursa(job #157615)
#include<cstdio>
char a[100003],*b;
int termen();
int factor();
int eval()
{
int x=termen();
while(*b=='+'||*b=='-'){
switch(*b){
case '+':
++b;
x=x+termen();
break;
case '-':
++b;
x=x-termen();
break;}}
return x;
}
int termen()
{
int x=factor();
while(*b=='*'||*b=='/')
switch(*b){
case '*':
++b;
x*=factor();
break;
case '/':
++b;
x/=factor();
break;}
return x;
}
int factor()
{
int x=0;
if(*b=='('){
++b;
x=eval();
++b;}
else{
while(*b>='0'&&*b<='9'){
x=x*10+*b-'0';++b;}}
return x;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(a);
b=a;
printf("%d",eval());
fclose(stdout);
return 0;
}