Pagini recente » Cod sursa (job #3124800) | Cod sursa (job #2858811) | Cod sursa (job #927019) | Cod sursa (job #295297) | Cod sursa (job #895644)
Cod sursa(job #895644)
#include<cstdio>
using namespace std;const long Max=100010;char S[Max], *p=S;long termen();long factor(); long eval() { long r = termen(); while ( *p=='+' || *p=='-' ) { switch ( *p ) { case '+': ++p; r += termen(); break; case '-': ++p; r -= termen(); break; } } return r;}long termen() { long r = factor(); while ( *p=='*' || *p=='/' ) { switch ( *p ) { case '*' : ++p; r *= factor(); break; case '/': ++p; r /= factor(); break; } } return r;} long factor() { long r=0; if ( *p == '(' ) { ++p; r = eval(); ++p; } else { while ( *p>='0' && *p<='9' ) { r = r*10 + *p - '0'; ++p; } } return r;}int main(){ fgets(S, Max, fopen("evaluare.in", "r")); long K = eval(); freopen ("evaluare.out", "w", stdout); printf("%ld\n", K); fprintf(fopen("evaluare.out", "w"), "%ld\n", eval()); return 0;}