Pagini recente » Cod sursa (job #2606965) | Cod sursa (job #1178581) | Cod sursa (job #1499355) | Cod sursa (job #3174868) | Cod sursa (job #1151386)
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <cstring>
using namespace std;
#define nmax 100005
ofstream out("evaluare.out");
char S[nmax], *p=S;
long termen();
long factor();
long eval(){
long r=termen();
if (*p=='+')
p++, r+=termen();
else if (*p=='-')
p++, r-=termen();
return r;
}
long termen(){
long r=factor();
if (*p=='*')
p++, r*=factor();
else if (*p=='/')
p++, r/=factor();
return r;
}
long factor(){
long r=0;
if (*p=='(')
p++, r=eval(), p++;
else {
while (*p>='0' && *p<='9'){
r=(r*10)+*p-'0';
p++;
}
}
return r;
}
int main(){
fgets(S, nmax, fopen("evaluare.in","r"));
out << eval();
return 0;
}