Pagini recente » Cod sursa (job #1683713) | Cod sursa (job #1358071) | Cod sursa (job #2843541) | Cod sursa (job #3133864) | Cod sursa (job #2791566)
#include <stdio.h>
#define MAX 100001
char v[MAX];
int I;
int adunare();
int factor(){
int nr;
if(v[I]=='('){
I++;
nr=adunare();
I++;
}else{
nr=0;
while(v[I]>='0' && v[I]<='9'){
nr=nr*10+(v[I]-'0');
I++;
}
}
return nr;
}
int inmultire(){
int rez;
rez=factor();
while(v[I]=='*' || v[I]=='/'){
if(v[I]=='*'){
I++;
rez*=factor();
}else{
I++;
rez/=factor();
}
}
return rez;
}
int adunare(){
int rez;
rez=inmultire();
while(v[I]=='+' || v[I]=='-'){
if(v[I]=='+'){
I++;
rez+=adunare();
}else{
I++;
rez-=adunare();
}
}
return rez;
}
int main(){
FILE *fin, *fout;
fin=fopen("evaluare.in","r");
fout=fopen("evaluare.out","w");
do{
v[I]=fgetc(fin);
I++;
}while(v[I-1]!='\n');
I=0;
fprintf(fout, "%d\n", adunare());
fclose(fin);
fclose(fout);
return 0;
}