Pagini recente » Cod sursa (job #1921964) | Cod sursa (job #3163717) | Cod sursa (job #1658527) | Cod sursa (job #1418651) | Cod sursa (job #921502)
Cod sursa(job #921502)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100010],*p=s;
long eval(),elem(),fact();
long eval() {
long rez=elem();
while(*p=='+'||*p=='-') {
switch(*p) {
case '+':
p++;
rez+=elem();
break;
case '-':
p++;
rez-=elem();
break;
}
}
return rez;
}
long elem() {
long rez=fact();
while(*p=='*'||*p=='/') {
switch(*p) {
case '*':
p++;
rez *= fact();
break;
case '/':
p++;
rez /= fact();
break;
}
}
return rez;
}
long fact() {
long rez=0;
if(*p=='(') {
++p;
rez = eval();
++p;
} else {
while(*p>='0'&&*p<='9')
rez=rez*10+*p-'0',++p;
}
return rez;
}
int main() {
f>>s;
g<<eval();
}