Pagini recente » Cod sursa (job #2535401) | Cod sursa (job #353379) | Cod sursa (job #2180246) | Cod sursa (job #1504651) | Cod sursa (job #852117)
Cod sursa(job #852117)
#include <cstdio>
#include <string.h>
using namespace std;
int p=0,n;
char s[100001];
int parant();
int prod();
int adun();
int main()
{
FILE *f=fopen("evaluare.in","r");
FILE *g=fopen("evaluare.out","w");
fscanf(f,"%s",s);
n=strlen(s)-1;
while(s[n]=='\n')s[n--]=NULL;
fprintf(g,"%d",adun());
fclose(f);
fclose(g);
return 0;
}
int adun()
{
int r=prod();
while(s[p]=='-'||s[p]=='+')
if(s[p]=='+')
{
p++;
r+=prod();
}
else {p++;r-=prod();}
return r;
}
int prod()
{
int r=parant();
while(s[p]=='/'||s[p]=='*')
if(s[p]=='*'){p++;r*=parant();}
else {p++;r/=parant();}
return r;
}
int parant()
{
int r=0;
if(s[p]=='(')
{
p++;
r=adun();
p++;
}
else while(s[p]>='0'&&s[p]<='9')
{
r*=10;
r+=s[p]-'0';
p++;
}
return r;
}