Pagini recente » Cod sursa (job #2328314) | Cod sursa (job #1542641) | Cod sursa (job #169769) | Cod sursa (job #895971) | Cod sursa (job #671104)
Cod sursa(job #671104)
#include<fstream>
using namespace std;
char s[100005],*p;
long eval();
long termen();
long factor();
long eval()
{long rez=termen();
while(*p=='+' || *p=='-')
{
if(*p=='+'){p++; rez+=termen();}
if(*p=='-'){p++; rez-=termen();}
}
return rez;
}
long termen()
{long rez=factor();
while(*p=='*' || *p=='/')
{
if(*p=='*'){p++; rez*=factor(); }
if(*p=='/'){p++; rez/=factor(); }
}
return rez;
}
long factor()
{int rez=0;
if(*p=='('){ p++; rez=eval(); p++; }
else
while(*p<='9' && *p>='0'){rez=rez*10+*p-'0'; p++;}
return rez;
}
int main()
{
ifstream f("evaluare.in");ofstream g("evaluare.out");
f.getline(s,100003);
p=s;
g<<eval();
f.close();g.close();
return 0;}