Cod sursa(job #667673)

Utilizator pykhNeagoe Alexandru pykh Data 23 ianuarie 2012 16:47:07
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<cstdio>
using namespace std;

const char in[]="evaluare.in";
const char out[]="evaluare.out";

const int N = 100005;

char v[N], *p = v;

int b();
int c();

int a()
	{
		int r = b();
		while(*p == '+' || *p == '-')
			if(*p == '+')
				++p, r += b();
			else if(*p == '-')
				++p, r -= b();
		
		return r;
}

int b()
	{
		int r = c();
		while(*p == '*' || *p == '/')
			if(*p == '*')
				++p, r *= c();
			else if(*p == '/')
				++p, r /= c();
		
		return r;
}

int c()
	{
		int nr = 0;
		
		if(*p == '(')++p, nr=a(), ++p;
		else
		{
			while(*p >= '0' && *p <= '9')
				nr = nr * 10 + (*p - '0'), ++p;
			
		}
		
		return nr;
		
}
		


int main()
	{
		freopen(in,"r",stdin);
		freopen(out,"w",stdout);
		
		scanf("%s", v);
		
		printf("%d", a());
		
		return 0;
}