Pagini recente » Cod sursa (job #424038) | Cod sursa (job #993032) | Cod sursa (job #310415) | Cod sursa (job #2130926) | Cod sursa (job #2791710)
#include <stdio.h>
#include <stdlib.h>
#define MAX 100001
char v[MAX];
int i;
int adun();
int numar(){
int nr;
if(v[i]=='('){
i++;
nr=adun();
i++;
}
else{
nr=0;
while(v[i]>='0' && v[i]<='9'){
nr=nr*10+(v[i]-'0');
i++;
}
}
return nr;
}
int prod(){
int af;
af=numar();
while(v[i]=='*' || v[i]=='/'){
if(v[i++]=='*')
af*=numar();
else
af/=numar();
}
return af;
}
int adun(){
int af;
af=prod();
while(v[i]=='+' || v[i]=='-'){
if(v[i++]=='+')
af+=prod();
else
af-=prod();
}
return af;
}
int main(){
FILE *fin,*fout;
char ch;
fin=fopen("evaluare.in", "r");
fout=fopen("evaluare.out", "w");
ch=fgetc(fin);
i=0;
while(ch!='\n'){
v[i]=ch;
i++;
ch=fgetc(fin);
}
i=0;
fclose(fin);
fprintf(fout, "%d\n", adun());
fclose(fout);
return 0;
}