Pagini recente » Cod sursa (job #3268298) | Cod sursa (job #3169517) | Cod sursa (job #760578) | Borderou de evaluare (job #2605890) | Cod sursa (job #625118)
Cod sursa(job #625118)
#include<stdio.h>
int termen() ;
int expresie();
int factor();
char s[100005],*p;
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
p=s;
printf("%d",expresie());
return 0;
}
int expresie()
{
int sum=termen();
while(*p=='+'||*p=='-')
{
if(*p=='+')
{
++p;
sum+=termen();
continue;
}
++p;
sum-=termen();
}
return sum;
}
int termen()
{
int val=factor();
while(*p=='*'||*p=='/')
{
if(*p=='*')
{
++p;
val*=factor();
continue;
}
++p;
val/=factor();
}
return val;
}
int factor()
{
int val=0;
if(*p=='(')
{
++p;
val=expresie();
++p;
}else{
while(*p>='0'&&*p<='9')
{
val=val*10+*p-'0';
++p;
}
}
return val;
}