Witam. Realizuję zadanie ze SPOJ o stosie: http://pl.spoj.com/problems/STOS/.
Zrobiłem zadanie tylko po części i stanąłem w miejscu. Mam odnośnie tego 2 pytania:
1. W jaki sposób zrobić to zadanie tak, aby użytkownik wprowadzał tyle poleceń ile chce. Oczywiście próbowałem to zrobić pętlą jednak w zadaniu i przykładzie nie jest napisane co ma być warunkiem pętli (domyślam się że inny znak, jednak w przykładzie zadania tego nie ma).
2. Jak przenieść odpowiedzi na koniec programu, kiedy użytkownik skończy wprowadzać polecenia(↑). Trzeba dodatkową tablicę stworzyć i wprowadzać do niej na bieżąco wyniki a potem je wyświetlić ?
Proszę tylko na nakierowanie na odpowiednią ścieżkę :D Bo na razie skończyłem na tym:
#include <iostream>
#include <cstdio>
using namespace std;
int tab[10];
int rozmiar ;
void push(int n);
void pop();
int main()
{
int ile;
cout<<"Ile wprowadzisz polecen? : ";
cin>>ile;
rozmiar=0;
char chars[ile];
int nums[ile];
int i = 0;
for(int i=0; i<ile; i++)
{
cin>>chars[i];
if(chars[i]=='+')
{
cin>>nums[i];
push(nums[i]);
}
else if (chars[i]=='-')
pop();
}
return 0;
}
void push(int n)
{
if (rozmiar>9)
{
cout<<":("<<endl;
}
else
{
cout<<":)"<<endl;
rozmiar+=1;
tab[rozmiar] = n;
}
}
void pop()
{
if (rozmiar>=1)
{
cout<<tab[rozmiar]<<endl;
rozmiar=rozmiar-1;
}
else
{
cout << ":("<<endl;
}
}