Pagini recente » Cod sursa (job #2563662) | Cod sursa (job #575164) | Cod sursa (job #2409597) | Cod sursa (job #584981) | Cod sursa (job #3268248)
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
int n,j,i,c,p;
char s[1000001];
int expresie();
int termen();
int factor();
int constanta();
int main()
{
cin.getline(s, 256);
cout << expresie();
}
int expresie(){
int r = termen();
while(s[i] == '+' || s[i] == '-'){
if(s[i] == '+'){
i++;
r += termen();
}
else{
i++;
r -=termen();
}
}
return r;
}
int termen(){
int r = factor();
while(s[i] == '*' || s[i] == '/'){
if(s[i] == '*'){
i++;
r*= termen();
}
else
{
i++;
r/= termen();
}
}
return r;
}
int factor(){
int r;
if(s[i] == '('){
i++;
r = expresie();
i++;
}
else
r = constanta();
return r;
}
int constanta(){
int r = 0;
while(s[i] >='0' && s[i] <='9'){
r =r *10 + s[i]-'0';
i++;
}
return r;
}