Pagini recente » Cod sursa (job #1019143) | Cod sursa (job #1548775) | Cod sursa (job #3267272) | Cod sursa (job #2742307) | Cod sursa (job #1831573)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100010], *p=s;
int eval();
int termen();
int fact();
int eval()
{
int r=termen();
while(*p=='+'||*p=='-') {
if(*p=='+') {
p++;
r+=termen();
}
else {
p++;
r-=termen();
}
}
return r;
}
int termen()
{
int r=fact();
while(*p=='*'||*p=='/') {
if(*p=='*') {
p++;
r*=termen();
}
else {
p++;
r/=termen();
}
}
return r;
}
int fact()
{
int r=0;
if(*p=='(') {
p++;
r=eval();
p++;
}
else {
while(*p>='0' && *p<='9') {
r=r*10+*p-'0';
p++;
}
}
return r;
}
int main ()
{
f.getline(s, 100010);
g<<eval();
return 0;
}