Pagini recente » Cod sursa (job #3164671) | Cod sursa (job #520212) | Cod sursa (job #1868274) | Cod sursa (job #1701787) | Cod sursa (job #288107)
Cod sursa(job #288107)
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void read(),solve();
char s[100005],op[100005];
int v[100005],l,V,O,i,val;
int main()
{ read();
solve();
printf("%d",v[1]);
return 0;
}
void read()
{ freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
l=strlen(s);
op[0]='#';
}
void solve()
{ for(i=0;i<l;i++)
{ if(isdigit(s[i])) { val=0;
while(isdigit(s[i])){ val*=10; val+=(int)(s[i]-'0'); i++;}
i--;
if(op[O]=='*'){ v[V]*=val; O--;}
else if(op[O]=='/'){ v[V]/=val; O--;}
else v[++V]=val;
continue;
}
if(s[i]==')'){ while(op[O]!='('){ if(op[O]=='+') v[V-1]+=v[V];
else v[V-1]-=v[V];
V--; O--;
}
O--;
continue;
}
op[++O]=s[i];
}
while(O)
{ if(op[O]=='+') v[V-1]+=v[V];
else v[V-1]-=v[V];
V--; O--;
}
}