Pagini recente » Cod sursa (job #1333893) | Cod sursa (job #1528558) | Cod sursa (job #416848) | Cod sursa (job #1608189) | Cod sursa (job #2790372)
#include <iostream>
using namespace std;
FILE *fin;
char ch;
int adunare();
int inmultire();
int getnr();
int getnr() {
if (ch == '(') {
ch = fgetc( fin );
int val = adunare();
ch = fgetc( fin );
return val;
}
int nr = 0;
while (ch >= '0' && ch <= '9') {
nr = nr * 10 + ch - '0';
ch = fgetc( fin );
}
return nr;
}
int adunare() {
int val;
val = inmultire();
while (ch == '+' || ch == '-') {
if (ch == '+') {
ch = fgetc( fin );
val += inmultire();
}
else {
ch = fgetc( fin );
val -= inmultire();
}
}
return val;
}
int inmultire() {
int val;
val = getnr();
while (ch == '*' || ch == '/') {
if (ch == '*') {
ch = fgetc( fin );
val *= getnr();
}
else {
ch = fgetc( fin );
val /= getnr();
}
}
return val;
}
int main() {
FILE *fout;
fin = fopen("evaluare.in", "r");
fout = fopen("evaluare.out", "w");
ch = fgetc( fin );
fprintf(fout, "%d", adunare());
return 0;
}