Hej, nie mam doświadczenia w programowaniu.
potrzebuje stworzyć program w c++, który będzie wykonywał działania matematyczne (dodawanie, odejmowanie, mnożenie, dzielenie) w nawiasach;
każdy z wpisywanych znaków będzie oddzielony spacją ( czyli na konsoli wpisuje sie np.: ( 6 * 8 ) - 8 ).
Muszę wykorzystać do tego dwa stosy: liczb i znaków.
czego brakuje w moim kodzie, aby program prawidlowo dzialal?
#include <iostream>
#include <stack>
using namespace std;
int main ()
{
stack < int > StosLiczb;
stack < char > StosZnakow;
char token;
while (cin >> token)
{
if (token == '0'|| token == '1' || token == '2' || token == '3' || token == '4' || token == '5' || token == '6' || token == '7' || token == '8' || token == '9')
{
StosLiczb.push(token);
}
if (token == '+' || token == '-' || token == '*' || token == '/')
{
StosZnakow.push(token);
}
if (token == '(')
{
}
if (token == ')')
{
int y;
char znak;
int x;
y = StosLiczb.top(); // wziecie wartosci z gory
StosLiczb.pop(); // usuniecie wartosci z gory
x = StosLiczb.top();
StosLiczb.pop();
znak = StosZnakow.top();
StosZnakow.pop();
if (znak = '+')
{
int wynik;
wynik = (y+x);
StosLiczb.push(wynik);
}
else if (znak = '-')
{
int wynik;
wynik = (y-x);
StosLiczb.push(wynik);
}
else if (znak = '*')
{
int wynik;
wynik = (y*x);
StosLiczb.push(wynik);
}
else if (znak = '/')
{
int wynik;
if (x = 0)
{
cout << "NaN";
}
else
{
wynik = (y/x);
StosLiczb.push(wynik);
}
}
}
}
cout << (char)StosLiczb.top();
}