Pagini recente » Cod sursa (job #47202) | Cod sursa (job #488723) | Cod sursa (job #2644658) | Cod sursa (job #1477116) | Cod sursa (job #1148491)
#include <iostream>
#include <fstream>
#include <string>
#include <queue>
#define nr 100001
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[nr];
char *p=s;
long termen();
long fact();
long calc()
{
long r=termen();
while(*p=='+' || *p=='-')
{switch(*p)
{
case '+':
++p;
r+=termen();
break;
case '-':
++p;
r-=termen();
break;
}}
return r;
}
long termen()
{
long r=fact();
while(*p=='*' || *p=='/')
{ switch(*p)
{case '*':
++p;
r*=fact();
break;
case '/':
++p;
r/=fact();
break;
}}
return r;
}
long fact()
{
long r=0;
if(*p=='(')
{
++p;
r=calc();
++p;
}
else while(*p>='0' && *p<='9')
{r=r*10+*p-'0';
++p;}
return r;
}
int main()
{
char c;
int i=1;
while(f>>c)
{
s[i]=c;
i++;
}
g<<calc();
return 0;
}