Pagini recente » Cod sursa (job #228401) | Cod sursa (job #1588698) | Cod sursa (job #2166669) | Cod sursa (job #832093) | Cod sursa (job #1144855)
#include<cstdio>
#include<cstring>
FILE *f=fopen("evaluare.in", "r");
FILE *g=fopen("evaluare.out", "w");
int poz, n;
char s[100001];
int f3();
int f2();
int f1(){
int sum=f2();
while(s[poz]=='+'||s[poz]=='-'&&poz<n){
char c=s[poz];
++poz;
int x=f2();
if(c=='-')
sum-=x;
else
sum+=x;
}
return sum;
}
int f2(){
int p=f3();
while(s[poz]=='*'||s[poz]=='/'&&poz<n){
int c=s[poz];
++poz;
int x=f3();
if(c=='*')
p*=x;
else
p/=x;
}
return p;
}
int f3(){
int val=0;
if(s[poz]=='('){
++poz;
val=f1();
++poz;
return val;
}
int c=s[poz]-'0';
while(0<=c&&c<=9&&poz<n){
val=val*10+c;
++poz;
c=s[poz]-'0';
}
return val;
}
int main()
{
fscanf(f, "%s", s);
n=strlen(s);
poz=0;
fprintf(g, "%d", f1());
return 0;
}