Pagini recente » Cod sursa (job #3191381) | Cod sursa (job #1786700) | Cod sursa (job #3255241) | Cod sursa (job #1891106) | Cod sursa (job #2789114)
#include <stdio.h>
#include <stdlib.h>
#define LUNGIME 100000
char v[LUNGIME];
int Index;
FILE *fin,*fout;
void Citire(){
int i;
char a;
i=0;
a=fgetc(fin);
while(a!='\n' && a!=-1){
v[i]=a;
i++;
a=fgetc(fin);
}
}
int Adunare();
int Termen(){
int num;
if(v[Index]=='('){
Index++;
num=Adunare();
Index++;
}else{
num=0;
while(v[Index]>='0' && v[Index]<='9'){
num=(num*10)+(v[Index]-'0');
Index++;
}
}
return num;
}
int Inmultire(){
int rez;
char x;
rez=Termen();
while(v[Index]=='*' || v[Index]=='/'){
x=v[Index];
Index++;
if(x=='*'){
rez*=Termen();
}else{
rez/=Termen();
}
}
return rez;
}
int Adunare(){
int rez;
char x;
rez=Inmultire();
while(v[Index]=='+' || v[Index]=='-'){
x=v[Index];
Index++;
if(x=='+'){
rez+=Inmultire();
}else{
rez-=Inmultire();
}
}
return rez;
}
int main(){
fin=fopen("evaluare.in","r");
fout=fopen("evaluare.out","w");
Citire();
Index=0;
fprintf(fout,"%d",Adunare());
fclose(fin);
fclose(fout);
return 0;
}