Pagini recente » Cod sursa (job #2849107) | Cod sursa (job #1633638) | Cod sursa (job #2617836) | Cod sursa (job #584502) | Cod sursa (job #175005)
Cod sursa(job #175005)
#include <stdio.h>
#include <string.h>
char *p,S[100005];
long termen();long factor();
long eval(){
long t=termen();
while (*p=='+'||*p=='-')
if (*p=='+'){
++p;
t+=termen();
}
else{
++p;
t-=termen();
}
return t;
}
long termen(){
long f=factor();
while (*p=='*'||*p=='/')
if (*p=='*'){
++p;
f*=factor();
}
else{
++p;
f/=factor();
}
return f;
}
long factor(){
long op=0;
if (*p=='('){
++p;
op=eval();
++p;
}
else while (*p>='0'&&*p<='9') op = op*10 + *p++ -'0';
return op;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(S);
p=S;
printf("%ld\n",eval());
return 0;
}