Pagini recente » Cod sursa (job #970522) | Cod sursa (job #2491428) | Cod sursa (job #2908083) | Cod sursa (job #767646) | Cod sursa (job #1201009)
#include <fstream>
using namespace std;
char s[100005];
char *p = s;
long eval();
long termen();
long factor();
long eval(){
long r = termen();
while(*p == '+' || *p == '-'){
if(*p == '+') {
p++;
r = r + termen();
}
if(*p == '-') {
p++;
r = r - termen();
}
}
return r;
}
long termen(){
long r = factor();
while ( *p=='*' || *p=='/' ){
if(*p == '*'){
p++;
r = r * factor();
}
if(*p == '/'){
p++;
r = r / factor();
}
}
return r;
}
long factor(){
long r = 0;
if(*p == '('){
p++;
r = eval();
p++;
}
if(*p >= '0' && *p <= '9'){
while(*p >= '0' && *p <= '9'){
r = 10*r + *p - '0';
p++;
}
}
return r;
}
int main(){
ifstream inFile("evaluare.in");
ofstream outFile("evaluare.out");
inFile >> s;
outFile << eval();
}