Pagini recente » Cod sursa (job #1913902) | Cod sursa (job #1005237) | Cod sursa (job #2404742) | Cod sursa (job #2759392) | Cod sursa (job #1155227)
#include <iostream>
#include <fstream>
using namespace std;
char S[100010],*p=S;
long termen();
long factor();
long eval(){
long r = termen();
while (*p == '+' || *p == '-'){
if(*p == '+'){
p++;
r += termen();
}else{
p++;
r -= termen ();
}
}
return r;
}
long termen(){
long r = factor();
while (*p == '*' || *p == '/'){
if(*p=='*'){
p++;
r *= factor();
}else{
p++;
r /= factor();
}
}
return r;
}
long factor(){
long r = 0;
if(*p == '('){
p++;
eval();
p++;
}else{
while (*p>='0' && *p<='9'){
r=r*10+*p-'0';
p++;
}
return r;
}
}
int main()
{
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
fin.getline(S,100010);
fout<<eval()<<'\n';
return 0;
}