Pagini recente » Cod sursa (job #842233) | Cod sursa (job #1146584) | Cod sursa (job #1877842) | Cod sursa (job #1192452) | Cod sursa (job #1118328)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[100001];
int i;
int termen();
int factor();
int expresie()
{
int v=termen();
while(s[i]=='+' || s[i]=='-')
{
switch(s[i])
{
case '+':
i++;
v+=termen();
break;
case '-':
i++;
v-=termen();
break;
}
}
return v;
}
int termen()
{
int v=factor();
while(s[i]=='*' || s[i]=='/')
{
switch(s[i])
{
case '*':
i++;
v*=factor();
break;
case '/':
i++;
v/=factor();
break;
}
}
return v;
}
int factor()
{
int v=0;
if (s[i]=='(')
{
i++;
v=expresie();
i++;
}
else while(s[i]>='0' && s[i]<='9')
v=v*10+s[i++]-'0';
return v;
}
int main()
{
fin.getline(s, 100001);
fout<<expresie();
return 0;
}