Pagini recente » Cod sursa (job #1993383) | Cod sursa (job #2270025) | Cod sursa (job #2132495) | Cod sursa (job #1489057) | Cod sursa (job #1510946)
#include <stdio.h>
#include <cstring>
using namespace std;
char s[100001];
int ind=0;
int len;
int eval3();
int eval(){
int r;
if(s[ind]=='('){
++ind;
r=eval3();
if(ind<len && s[ind]==')')
++ind;
return r;
}
r=0;
while(ind<len && 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");
fscanf(fin, "%s", &s);
len=strlen(s);
fprintf(fout, "%d", eval3());
return 0;
}