Cod sursa(job #2355755)

Utilizator FlorianMarcuMarcu Florian Cristian FlorianMarcu Data 26 februarie 2019 12:06:28
Problema Evaluarea unei expresii Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
// Evaluarea unei expresii.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

//#include "pch.h"
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char *p;
char op[4][4] = { "+-", "*/", "^", "" };
constexpr auto LMAX = 2;
struct arbore
{
	char car;
	arbore *st, *dr;	
}rad;
arbore* creeare(char c)
{
	arbore* nou = new arbore;
	nou->car = c;
	return nou;
}
int eval(int a, int b, char o) {
	switch (o) {
	case '+': return a + b;
	case '-': return a - b;
	case '*': return a * b;
	case '/': return a / b;
	}
}

int expr(int lev) {
	int x, y;

	if (lev == LMAX)
		if (*p == '(')
			++p, x = expr(0), ++p;
		else
			for (x = 0; *p >= '0' && *p <= '9'; ++p)
				x = x * 10 + *p - '0';
	else
		for (x = expr(lev + 1); strchr(op[lev], *p); x = y)
			y = eval(x, expr(lev + 1), *p++);
	return x;
}
int main()
	{
	char sir[100000];
	fin >> sir;
	p = sir;
	fout << expr(0);
	return 0;
}