Pagini recente » Cod sursa (job #2713611) | Cod sursa (job #2623424) | Istoria paginii runda/eusebiu_oji_2013_cls11-12/clasament | Cod sursa (job #1139020) | Cod sursa (job #2026807)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("evaluare.in");
ofstream g ("evaluare.out");
char s[100001],*p=s;
int evaluare();
int termen();
int numar();
int evaluare()
{
int r=termen();
while(*p=='+' or *p=='-')
{
if(*p=='+') {*p++;
r=r+termen();
}
else {*p++;
r=r-termen();
}
}
return r;
}
int termen()
{
int r=numar();
while(*p=='*' or *p=='/')
{
if(*p=='*') {*p++;
r=r*numar();
}
else{*p++;
r=r/numar();
}
}
return r;
}
int numar()
{
int r=0;
if(*p>='0' && *p<='9')
while(*p>='0' && *p<='9')
{
r=r*10+*p-48;
*p++;
}
else if(*p=='(')
{
*p++;
r=evaluare();
*p++;
}
return r;
}
int main()
{
f.getline(s,100001);
g<<evaluare();
return 0;
}