Pagini recente » Cod sursa (job #1367107) | Cod sursa (job #723965) | Cod sursa (job #722666) | Cod sursa (job #2793405) | Cod sursa (job #1140878)
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
FILE *f=fopen("evaluare.in","r");
FILE *g=fopen("evaluare.out","w");
char s[100001];
int op,p,nr,w[100005];
int termen();
int expresie();
int factor();
int termen()
{
int rez=factor();
while(s[p]=='+' || s[p]=='-')
{
if(s[p]=='+')
{
p++;
rez+=factor();
}else
{
p++;
rez-=factor();
}
}
return rez;
}
int factor()
{
int rez=expresie();
while(s[p]=='/' || s[p]=='*')
{
if(s[p]=='*')
{
p++;
rez*=expresie();
}else
{
p++;
rez/=expresie();
}
}
return rez;
}
int expresie()
{
int rez=0;
if(s[p]=='(')
{
p++;
rez=termen();
p++;
}
else
{
while(s[p]>='0' && s[p]<='9')
{
rez=rez*10+s[p]-'0';
p++;
}
}
return rez;
}
int main()
{
fgets(s,100001,f);
strcpy(s+strlen(s)-1,s+strlen(s));
p=0;
fprintf(g,"%d",termen());
return 0;
}