Pagini recente » Cod sursa (job #1286646) | Cod sursa (job #683638) | Cod sursa (job #1858088) | Cod sursa (job #633436) | Cod sursa (job #1907718)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("evaluare.in");
ofstream fout ("evaluare.out");
char *sir=new char[100002];
long long int termen();
long long int factor();
long long int eval(){
long long r=termen();
while(*sir=='+' || *sir =='-'){
switch(*sir){
case '+':
sir++;
r+=termen();
break;
case '-':
sir++;
r-=termen();
break;
}
}
return r;
}
long long int termen(){
long long r=factor();
while(*sir=='*' || *sir =='/'){
switch(*sir){
case '*':
sir++;
r*=factor();
break;
case '/':
sir++;
r/=factor();
break;
}
}
return r;
}
long long int factor(){
long long r=0;
if(*sir=='('){
sir++;
r=eval();
sir++;
}
else {
while(*sir>='0' && *sir<='9')
r=r*10+*(sir++)-'0';
}
return r;
}
int main()
{
fin.get(sir,256);
fout<<eval();
return 0;
}