Pagini recente » Cod sursa (job #2854304) | Cod sursa (job #2474055) | Cod sursa (job #2095422) | Cod sursa (job #2184386) | Cod sursa (job #1048765)
#include <cstdio>
const int Q=100007;
char s[Q];
int p;
int expresie();
int termen();
int factor();
int termen(){
int prod=factor();
int act,tot=prod;
while(s[p]=='*' || s[p]=='/')
if(s[p]=='*')
{
p++;
act=factor();
tot*=act;
}
else
{
p++;
act=factor();
tot/=act;
}
return tot;
}
int factor(){
int semn=1,val=0;
while(s[p]=='-')
{
semn=-semn;
p++;
}
if(s[p]=='(')
{
p++;
val=expresie();
p++;
return semn*val;
}
while(s[p]>='0' && s[p]<='9')
val=val*10+(s[p++]-'0');
return semn*val;
}
int expresie(){
int sum=termen();
while(s[p]=='+' || s[p]=='-')
if(s[p]=='+')
{
p++;
sum+=termen();
}
else
{
p++;
sum-=termen();
}
return sum;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",&s);
printf("%d",expresie());
}