Pagini recente » Cod sursa (job #3282433) | Cod sursa (job #364500) | Cod sursa (job #1033920) | Cod sursa (job #841744) | Cod sursa (job #304159)
Cod sursa(job #304159)
#include <stdio.h>
char *p,sir[100005];
int termen();
int factor();
int eval();
int main()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
gets(sir);
p=sir;
printf("%d",eval());
return 0;
}
int eval(){
int t=termen();
while (*p=='+'||*p=='-')
if (*p=='+'){
++p;
t+=termen();
}
else
{
++p;
t-=termen();
}
return t;
}
int termen ()
{
int f=factor();
while (*p=='*'||*p=='/')
if (*p=='*'){
p++;
f*=factor();
}
else
{
++p;
f/=factor();
}
return f;
}
int factor()
{
int op=0;
if (*p=='('){
++p;
op=eval();
++p;
}
else
{
while (*p>='0'&&*p<='9')
op=op*10+*p++-'0';
}
return op;
}