Pagini recente » Cod sursa (job #2415446) | Cod sursa (job #3282828) | Cod sursa (job #1862238) | Cod sursa (job #2020219) | Cod sursa (job #359477)
Cod sursa(job #359477)
#include<stdio.h>
#include<string.h>
char *c,expr[100010];
int s(),p(),b(),n();
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",expr);
}
void solve()
{
c=expr;printf("%d\n",s());
}
int s()
{
int ret=p();
while(*c=='+'||*c=='-')
{
if(*c=='+'){c++;ret+=p();}
else {c++;ret-=p();}
}
return ret;
}
int p()
{
int ret=b();
while(*c=='*'||*c=='/')
{
if(*c=='*'){c++;ret*=b();}
else {c++;ret/=b();}
}
return ret;
}
int b()
{
int ret;
if(*c=='('){c++;ret=s();c++;}
else ret=n();
return ret;
}
int n()
{
int ret=0;
while(*c>='0'&&*c<='9'){ret*=10;ret+=*c-'0';c++;}
return ret;
}