Pagini recente » Cod sursa (job #2377582) | Cod sursa (job #2521490) | Cod sursa (job #538171) | Cod sursa (job #1909530) | Cod sursa (job #1455674)
#include <stdio.h>
#define MAX 100001
char s[MAX],last=0;
int T();
int F();
int E()
{
int r = T();
while( s[last] == '+' || s[last] == '-' )
{
if(s[last] == '+' )
{
last++;
r += T();
}
else
{
last++;
r -= T();
}
}
return r;
}
int T()
{
int r = F();
while( s[last] == '*' || s[last] == '/' )
{
if( s[last] == '*' )
{
last++;
r *= F();
}
else
{
last++;
r /= F();
}
}
return r;
}
int F()
{
int r = 0;
if( s[last] == '(') ///subexpresie
{
last++;
r=E();
last++;/// pentru ')'
}
else
{
while(s[last] >= '0' && s[last] <= '9')
{
r = r * 10 + s[last]- '0';
last++;
}
}
return r;
}
int main()
{
FILE *fin, *fout;
fin = fopen ("evaluare.in", "r");
fout = fopen("evaluare.out", "w");
fgets (s, MAX, fin);
fprintf (fout, "%d\n", E());
return 0;
}