Pagini recente » Cod sursa (job #1087468) | Cod sursa (job #1028855) | Cod sursa (job #21263) | Cod sursa (job #1891030) | Cod sursa (job #1118356)
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
char s[100010];
void citire()
{
FILE *f1 = fopen("evaluare.in","r");
fscanf(f1,"%s",s);
}
int i=0;
int nr,tot;
int termen();
int factor();
int exp()
{
int v=termen();
while(s[i]=='+' || s[i]=='-')
{
if(s[i]=='+')
i++,v+=termen();
else
i++,v-=termen();
}
return v;
}
int termen()
{
int v=factor();
while(s[i]=='*' || s[i]=='/')
{
if(s[i]=='*')
{i++;v*=factor();}
else
{
i++;
v/=factor();
}
}
return v;
}
int factor()
{
int v=0;
if(s[i]=='(')
{
i++;
v=exp();
i++;
}
else
while(isdigit(s[i]))
v=v*10+s[i++]-'0';
return v;
}
int main()
{
FILE *f1 = fopen("evaluare.out","w");
citire();
int x = exp();
fprintf(f1,"%d",x);
return 0;
}