Pagini recente » Cod sursa (job #1580325) | Cod sursa (job #1363496) | Cod sursa (job #3201688) | Borderou de evaluare (job #1550147) | Cod sursa (job #787674)
Cod sursa(job #787674)
#include<iostream>
#include<fstream>
#include<cctype>
using namespace std;
char lin[100005],*p=lin;
long long prod();
long long numar();
long long eval()//sum
{
long long r=prod();
while (*p=='-'||*p=='+')
{
if (*p=='-')
{
p++;
r=r-prod();
}
else
{
p++;
r=r+prod();
}
}
return r;
}
long long prod()//prod
{
long long r=numar();
while (*p=='/' || *p=='*')
{
if (*p=='*')
{
p++;
r=r*numar();
}
else
{
p++;
r=r/numar();
}
}
return r;
}
long long numar()
{
long long r=0;
if (*p=='(')
{
p++;
r=eval();
p++;
}
else
while (isdigit(*p))
{
r=r*10+int(*p)-48;
p++;
}
return r;
}
int main(void)
{
fstream f,g;
f.open("evaluare.in",ios::in);
g.open("evaluare.out",ios::out);
f.getline(lin,100005);
g<<eval();
}