Pagini recente » Cod sursa (job #737795) | Cod sursa (job #2596855) | Cod sursa (job #2613465) | Cod sursa (job #3235258) | Cod sursa (job #1397309)
#include <iostream>
#include <fstream>
#define M 100004
#define LL long long
using namespace std;
char s[M],*p=s;
LL termen();
LL factor();
LL eval()
{
LL r=termen();
while(*p=='+' || *p=='-')
switch( *p )
{
case '+':
p++;
r+=termen();
break;
case '-':
p++;
r-=termen();
break;
}
return r;
}
LL termen()
{
LL r=factor();
while(*p=='*' || *p=='/')
switch( *p )
{
case '*':
p++;
r*=factor();
break;
case '/':
p++;
r/=factor();
break;
}
return r;
}
LL factor()
{
LL r=0;
if(*p=='(')
{
p++;
r=eval();
p++;
}
while(*p>='0' && *p<='9')
{
r=r*10 + *p - '0';
p++;
}
return r;
}
int main()
{
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f.getline(s,M);
g<<eval();
}