Pagini recente » Cod sursa (job #48353) | Cod sursa (job #2140231) | Cod sursa (job #261263) | Cod sursa (job #2245366) | Cod sursa (job #662366)
Cod sursa(job #662366)
#include<fstream>
using namespace std;
int k=0;
char a[100010];
int evaluare();
int valoare()
{
int rez=0;
while(a[k]>='0'&&a[k]<='9')
rez=rez*10+(a[k]-'0'),k++;
return rez;
}
int factor()
{
int rez=0;
if(a[k]=='(')
{
k++;
rez=evaluare();
k++;
}
else
rez=valoare();
return rez;
}
int termen()
{
int rez=factor();
while(a[k]=='*'||a[k]=='/')
{
if(a[k++]=='*')
rez*=factor();
else
rez/=factor();
}
return rez;
}
int evaluare()
{
int rez=termen();
while(a[k]=='+'||a[k]=='-')
{
if(a[k++]=='+')
rez+=termen();
else
rez-=termen();
}
return rez;
}
int main()
{
FILE *f=fopen("evaluare.in","r");
FILE *g=fopen("evaluare.out","w");
fscanf(f,"%s",&a);
fprintf(g,"%d\n",evaluare());
return 0;
}