Cod sursa(job #3157430)

Utilizator vlad79xVlad79X vlad79x Data 15 octombrie 2023 15:41:53
Problema Evaluarea unei expresii Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
#define cure sir[poz]
#define next sir[poz+1]
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string sir;
int poz=0;
int adunare();
int produs();
int numar();
int adunare() {
  int rez=produs();
  while(cure=='+'||cure=='-') {
    if(cure=='+') {
      poz++;
      rez+=produs();
    } else if(cure=='-') {
      poz++;
      rez-=produs();
    }
  }
  //cout<<"adun:"<<rez<<",poz:"<<poz<<"\n";
  return rez;
}
int produs() {
  int rez=numar();
  while(cure=='*'||cure=='/') {
    if(cure=='*') {
      poz++;
      rez*=numar();
    } else if(cure=='/') {
      poz++;
      rez/=numar();
    }
  }
  //cout<<"prod:"<<rez<<",poz:"<<poz<<"\n";
  return rez;
}
int numar() {
  int nr=0;
  if(cure=='(') {
    poz++;
    nr+=adunare();
  } else {
    while(cure>='0'&&cure<='9') {
      nr=nr*10+cure-'0';
      poz++;
    }
  }
  return nr;
}
int main() {
  cin>>sir;
  cout<<adunare();
  return 0;
}