Cod sursa(job #3162621)

Utilizator YuzukyIstrate Andreea Ruxandra Yuzuky Data 29 octombrie 2023 15:46:45
Problema Evaluarea unei expresii Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
const int MAX = 100000;
char c[MAX];
int poz;

int factor()
{
  int number=0;
  while(c[poz]>='0' && c[poz]<='9')
  {
    number = number*10+c[poz]-'0';
    poz++;
  }
  return number;
}

int inmultire()
{
  int res=factor();
  while(c[poz]=='*' || c[poz]=='/')
  {
      if(c[poz]=='*')
      {
        poz++;
        res*=factor();
      }
      else
      {
        poz++;
        res/=factor();
      }
  }
  return res;
}
int adunare()
{
    int res=inmultire();
    while(c[poz]=='+' || c[poz]=='-')
      if(c[poz]=='+')
      {
        poz++;
        res+=inmultire();
      }
      else
      {
        poz++;
        res-=inmultire();
      }

    return res;
}

int main()
{
    in>>c;
    poz=0;
    out<<adunare();
    return 0;
}