Pagini recente » Istoria paginii utilizator/santa_vasile | Clasament simulare_2011 | Cod sursa (job #2363820) | Statistici Ionescu Stefan (Stefan98) | Cod sursa (job #532030)
Cod sursa(job #532030)
#include<stdio.h>
char s[240000];
int p;
int termen(); int expresie(); int factor();
int expresie()
{
int r=termen();
while(s[p]=='+' || s[p]=='-')
if(s[p]=='+')
{
++p;
r+=termen();
}
else
{
++p;
r-=termen();
}
return r;
}
int termen()
{
int r=factor();
while(s[p]=='*' || s[p]=='/')
if(s[p]=='/')
{
++p;
r/=factor();
}
else
{
++p;
r*=factor();
}
return r;
}
int factor()
{
int r=0;
if(s[p]=='(')
{
++p;
r=expresie();
++p;
return r;
}
while(s[p]>='0' && s[p]<='9')
{
r=r*10+s[p]-'0';
++p;
}
return r;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
p=0;
printf("%d",expresie());
return 0;
}