Pagini recente » Cod sursa (job #1061009) | Cod sursa (job #1058408) | Cod sursa (job #2968132) | Cod sursa (job #2114944) | Cod sursa (job #1468246)
#include <cstdio>
const long MAX = 100010;
char S[MAX], *p=S;
long termen();
long factor();
long eval(){
long r=termen();
while (*p=='+' || *p=='-'){
switch (*p){
case '+':
++p;r=r+termen();break;
case '-':
++p;r=r-termen();break;
}}
return r;
}
long termen(){
long r=factor();
while (*p=='*' || *p=='/'){
switch (*p){
case '*':++p;
r=r*termen();
break;
case '/':++p;
r=r/termen();
break;}
}
return r;
}
long factor(){
long r=0;
if (*p=='('){
++p;r=eval();++p;
}
else{
while (*p>='0' && *p<='9'){
r=r*10+*p-'0';++p;
}}
return r;
}
int main() {
fgets(S,MAX, fopen("evaluare.in","r"));
fprintf( fopen("evaluare.out","w"),"%lu",eval());
return 0;
}