Pagini recente » Cod sursa (job #3131920) | Cod sursa (job #946832) | Cod sursa (job #2217273) | Cod sursa (job #2872744) | Cod sursa (job #859038)
Cod sursa(job #859038)
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define Nmax 100002
char e[Nmax], *p;
void citire();
inline int Expresie();
inline int Factor();
inline int Termen();
void afis();
int main()
{
citire();
afis();
return 0;
}
void citire(){
freopen("expresie.in", "r", stdin);
scanf("%s", e);
p = e;
}
void afis(){
freopen("expresie.out", "w", stdout);
printf("%d\n", Expresie());
}
inline int Factor(){
int t = 0;
if(*p == '(')
++p,
t = Expresie(),
++p;
else
for(; *p >= 48 && *p <= 58; ++p)
t = t * 10 + *p - 48;
return t;
}
inline int Termen(){
int t = Factor();
while(1){
if(*p == '*')
++p,
t *= Factor();
else
if(*p == '/')
++p,
t /= Factor();
else
break;
}
return t;
}
inline int Expresie(){
int t = Termen();
while(1){
if(*p == '+')
++p,
t += Termen();
else
if(*p == '-')
++p,
t -= Termen();
else
break;
}
return t;
}