#include<string>
#include<iostream>
#include<sstream>
#include <CString>
#include <cstdlib>
using namespace std;
typedef struct stos
{
public:
struct stos *next=NULL;
int liczba;
}wsk;
wsk *first;
wsk *last;
void dodaj_do_stosu (wsk *lista, int wartosc)
{
wsk *wskaznik, *nowy;
wskaznik = lista;
while (wskaznik->next != NULL)
{
wskaznik = wskaznik->next;
}
nowy = new (wsk);
nowy->liczba = wartosc;
nowy->next = NULL;
wskaznik->next = nowy;
last=wskaznik->next;
}
int main()
{
int lb;
int el;
first==NULL;
last == NULL;
string wyrazenie;
int size ;
cout<<"wpisz działanie:/n"<<endl;
cin>>wyrazenie;
size=wyrazenie.length();
stringstream s;
s <<wyrazenie[0];
s >> lb;
dodaj_do_stosu(first, lb);
int i=0;
for(i=1;i<size;i+2)
{
if(wyrazenie[i]=='+')
{
s <<wyrazenie[i+1];
s >> lb;
dodaj_do_stosu(first, lb);
}
else if(wyrazenie[i]=='-')
{
s <<wyrazenie[i+1];
s >> lb;
lb=-lb;
//dla znaku - zapisuje ujemna wartosc nastepnej liczby w stringu
dodaj_do_stosu(first,lb);
}
else
{
s <<wyrazenie[i+1];
s >> lb;
if(wyrazenie[i]=='/') lb=last->liczba/el;
else if(wyrazenie[i]=='%') lb=last->liczba%el;
else if(wyrazenie [i]=='*') lb=last->liczba*el;
dodaj_do_stosu(last,lb);
}
}
int suma=0;
while(first->next==NULL)
{
suma=suma+first->liczba;
first=first->next;
} //petla ddaje dopoki sa elementy na stosie
cout<<"wynik dzialania to: "<<suma<<endl;
return 0;
}
Oto mój kod kalkulatora, czy mógł by ktoś na niego zerknąć i zobaczyć dlaczego mam z nim problem... przy kompilacji po wpisaniu wyrażenia zamyka automatycznie program...