Pagini recente » Cod sursa (job #3155372) | Cod sursa (job #3246481) | Cod sursa (job #2840955) | Cod sursa (job #2052428) | Cod sursa (job #2790666)
#include <stdio.h>
#define MAX 100001
char s[MAX];
int pas;
int adunare();
int factor() {
int nr;
if (s[pas] == '(') {
pas++;
nr = adunare();
pas++;
} else {
nr=0;
while (s[pas]>='0' && s[pas]<='9') {
nr = nr*10 + (s[pas]-'0');
pas++;
}
}
return nr;
}
int inmultire() {
int rez;
rez = factor();
while ((s[pas]=='*') || (s[pas]=='/')) {
if (s[pas] == '*') {
pas++;
rez*=factor();
} else {
pas++;
rez/=factor();
}
}
return rez;
}
int adunare() {
int rez;
rez = inmultire();
while ((s[pas]=='+') || (s[pas] == '-')) {
if (s[pas] == '+') {
pas++;
rez+=inmultire();
} else {
pas++;
rez-=inmultire();
}
}
return rez;
}
int main() {
FILE *fin, *fout;
fin = fopen("evaluare.in", "r");
fout = fopen("evaluare.out", "w");
fgets(s, MAX, fin);
pas=0;
fprintf(fout, "%d", adunare());
fclose(fin);
fclose(fout);
return 0;
}