Pagini recente » Cod sursa (job #3256226) | Cod sursa (job #39975) | Cod sursa (job #857310) | Cod sursa (job #661584) | Cod sursa (job #2077741)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100001],*p;
int eval();
int term();
int fact();
int main()
{
f.getline(s+1,100001);
s[0]='(';
int N= strlen(s);
s[N]=')';
s[N+1]='\0';
p=s;
g<<eval();
return 0;
}
int term()
{
int r;
r=fact();
while(*p=='*'||*p=='/'){
if(*p=='*') {++p; r*=fact();}
else {++p; r/=fact();}
}
return r;
}
int eval()
{
int r;
r=term();
while(*p=='+'||*p=='-'){
if(*p=='+') {++p; r+=term();}
else {++p; r-=term();}
}
return r;
}
int fact()
{
int r;
r=0;
if(*p=='(')
{
++p;
r=eval();
++p;
}
else
while(*p>='0'&&*p<='9')
{
r=r*10+(*p-'0');
p++;
}
return r;
}