Pagini recente » Cod sursa (job #2671104) | Cod sursa (job #1178736) | Cod sursa (job #1649619) | Cod sursa (job #1912005) | Cod sursa (job #2790970)
#include <stdio.h>
#include <stdlib.h>
#define MAXS 100000
char s[MAXS];
int i;
int adunare();
int factor() {
int nr;
if( s[i] == '(' ) {
i++;
nr = adunare();
i++;
}
else {
nr = 0;
while( '0' <= s[i] && s[i] <= '9' ) {
nr = nr * 10 + s[i] - '0';
i++;
}
}
return nr;
}
int inmultire() {
int rasp;
rasp = factor();
while( s[i] == '*' || s[i] == '/' ) {
if( s[i] == '*' ) {
i++;
rasp = rasp * factor();
}
else {
i++;
rasp = rasp / factor();
}
}
return rasp;
}
int adunare() {
int rasp;
rasp = inmultire();
while( s[i] == '+' || s[i] == '-' ) {
if ( s[i] == '+' ) {
i++;
rasp += inmultire();
}
else {
i++;
rasp -= inmultire();
}
}
return rasp;
}
int main() {
FILE *fin, *fout;
fin = fopen( "evaluare.in", "r" );
fgets( s, MAXS, fin );
fclose( fin );
fout = fopen( "evaluare.out", "w" );
fprintf( fout, "%d", adunare() );
fclose( fout );
return 0;
}