Pagini recente » Cod sursa (job #2596020) | Cod sursa (job #3246631) | Cod sursa (job #1954919) | Cod sursa (job #843105) | Cod sursa (job #2789281)
#define N 100000
#include <stdio.h>
char s[N + 5] ;
int i ;
int adunare() ;
int factor()
{
int n ;
if (s[i] == '(')
{
i++;
n = adunare() ;
i++;
}
else
{
n = 0 ;
while (s[i] >= '0' and s[i] <= '9')
{
n = n * 10 + (s[i] - '0') ;
i++;
}
}
return n ;
}
int inmultire()
{
int rez = factor() ;
while (s[i] == '*' or s[i] == '/')
if (s[i++] == '*')
rez = rez * factor() ;
else rez = rez / factor() ;
return rez ;
}
int adunare()
{
int rez = inmultire() ;
while (s[i] == '+' or s[i] == '-')
if(s[i++] == '+')
rez = rez + inmultire() ;
else rez = rez - inmultire() ;
return rez ;
}
int main()
{
FILE *fin, *fout;
fin = fopen("evaluare.in", "r");
fout = fopen("evaluare.out", "w");
fgets(s, N + 5, fin);
i = 0 ;
fprintf(fout, "%d", adunare());
fclose(fin);
fclose(fout);
return 0;
}