Pagini recente » Cod sursa (job #1865790) | Cod sursa (job #373435) | Cod sursa (job #1671386) | Cod sursa (job #393905) | Cod sursa (job #389663)
Cod sursa(job #389663)
#include<stdio.h>
#define max 100010
char S[max],*p=S;
long p1();
long p2();
long p3();
long p1(){
long raspuns = p2();
while( *p == '+' || *p == '-' ){
switch( *p ){
case '+': ++p; raspuns+=p2(); break;
case '-': ++p; raspuns-=p2(); break;
}
}
return raspuns;
}
long p2(){
long raspuns = p3();
while( *p == '*' || *p == '/' ){
switch( *p ){
case '*': ++p; raspuns*=p3(); break;
case '/': ++p; raspuns/=p3(); break;
}
}
return raspuns;
}
long p3(){
long raspuns = 0;
switch ( *p ){
case '(': ++p; p1(); ++p; break;
default :
for( ; '0' <= *p && '9' >= *p ; ++p ) raspuns = raspuns*10 + *p - '0';
}
return raspuns;
}
int main(){
FILE *f = fopen("evaluare.in","r");
FILE *g = fopen("evaluare.out","w");
fgets ( S, max, f );
fprintf(g,"%ld\n",p1());
return 0;
}