Pagini recente » Cod sursa (job #1662013) | Cod sursa (job #1003139) | Cod sursa (job #2475927) | Cod sursa (job #2918267) | Cod sursa (job #2789248)
#include <stdio.h>
#include <cstring>
#define NMAXX 100000
using namespace std;
char s[NMAXX];
int i;
int adunare();
int element() {
int nr;
if ( s[i] == '(' ) {
i++;
nr = adunare();
i++;
} else {
nr = 0;
while ( s[i] >= '0' && s[i] <= '9' ) {
nr *= 10;
nr += s[i] - '0';
i++;
}
}
return nr;
}
int inmultire() {
int res;
res = element();
while ( s[i] == '*' || s[i] == '/' ) {
if ( s[i++] == '*' )
res *= element();
else
res /= element();
}
return res;
}
int adunare() {
int res;
res = inmultire();
while ( s[i] == '+' || s[i] == '-' ) {
if ( s[i++] == '+' )
res += inmultire();
else
res -= inmultire();
}
return res;
}
int main()
{
FILE *fin, *fout;
fin = fopen( "evaluare.in", "r" );
fout = fopen( "evaluare.out", "w" );
fgets( s, NMAXX, fin );
fclose( fin );
i = 0;
fprintf( fout, "%d", adunare() );
fclose( fout );
return 0;
}