Pagini recente » Cod sursa (job #66042) | Cod sursa (job #179589) | Cod sursa (job #1757970) | Cod sursa (job #1933652) | Cod sursa (job #1510942)
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
char s[100001];
int ind=0;
int eval();
int eval2();
int eval3();
int eval(){
int r=0;
if(s[ind]=='('){
++ind;
r=eval3();
if(ind<strlen(s) && s[ind]==')')
++ind;
return r;
}
r=0;
while(ind<strlen(s) && s[ind]>='0' && s[ind]<='9'){
r=r*10+(s[ind]-'0');
++ind;
}
return r;
}
int eval2(){
int r=eval();
while(s[ind]=='*' || s[ind]=='/'){
++ind;
if(s[ind-1]=='*')
r=r*eval();
else r=r/eval();
}
return r;
}
int eval3(){
int r=eval2();
while(s[ind]=='+' || s[ind]=='-'){
++ind;
if(s[ind-1]=='+')
r=r+eval2();
else r=r-eval2();
}
return r;
}
int main()
{
FILE *fin=fopen("evaluare.in", "r");
FILE *fout=fopen("evaluare.out", "w");
int rez=0;
fgets(s, 100000, fin);
if(s[strlen(s)-1]=='\n')
s[strlen(s)-1]='\0';
rez=rez+eval3();
fprintf(fout, "%d", rez);
return 0;
}