Pagini recente » Cod sursa (job #2146190) | Cod sursa (job #93077) | Cod sursa (job #703725) | Cod sursa (job #1269384) | Cod sursa (job #1327542)
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[100010];
int nr;
int eval();
int factor()
{
int r=0;
if(s[nr]=='(')
{
nr++;
r=eval();
nr++;
}
while(s[nr]>='0'&&s[nr]<='9')
{
r=r*10+s[nr]-'0';
nr++;
}
return r;
}
int termen()
{
int r=factor();
while(s[nr]=='*' || s[nr]=='/')
{
if(s[nr]=='*') {nr++;r*=factor();}
if(s[nr]=='/') {nr++;r/=factor();}
}
return r;
}
int eval()
{
int r=termen();
while(s[nr]=='+' || s[nr]=='-')
{
if(s[nr]=='+') {nr++;r+=termen();}
if(s[nr]=='-') {nr++;r-=termen();}
}
return r;
}
int main()
{
fgets(s, 100010, fopen("evaluare.in", "r"));
fprintf(fopen("evaluare.out", "w"), "%d\n", eval());
}