Pagini recente » Cod sursa (job #1770220) | Cod sursa (job #661028) | Cod sursa (job #695830) | Cod sursa (job #2925416) | Cod sursa (job #2070400)
#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
char s[100002];
int f1();
int f2();
int f3();
int i=0;
int main () {
ifstream in ("evaluare.in");
ofstream out ("evaluare.out");
in.get(s,100001);
out << f1();
}
int f1() {
int r;
r=f2();
while(s[i]=='+' || s[i]== '-') {
if(s[i]=='+') {
i++;
int a=f2();
r+=a;
}
else {
i++;
int a=f2();
r-=a;
}
}
return r;
}
int f2() {
int r;
r=f3();
while(s[i]=='*' || s[i]=='/' || s[i]=='%') {
if(s[i]=='*') {
i++;
int a=f3();
r*=a;
}
if(s[i]=='/') {
i++;
int a=f3();
r/=a;
}
if(s[i]=='%') {
i++;
int a=f3();
r%=a;
}
}
return r;
}
int f3() {
int r=0;
if(s[i]=='(') {
i++;
r=f1();
i++;
}
else {
for(;s[i]>='0' && s[i]<='9'; i++) {
r=r*10+(s[i]-'0');
}
}
return r;
}