Pagini recente » Cod sursa (job #664591) | Cod sursa (job #2024394) | Cod sursa (job #2809675) | Cod sursa (job #1749580) | Cod sursa (job #1118325)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("eval.in");
ofstream fout("eval.out");
char s[1000];
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, 1000);
fout<<expresie();
return 0;
}