C++ - umieszczanie liczb w nowych stosach

0

Muszę napisać kod, który będzie ściągał liczby ze stosu i umieszczał je w nowych (przynajmniej 2) stosach. Niestety zupełnie nie wiem, jak to pociągnąć dalej. Dopiero zaczynam swoją przygodę z programowaniem, więc nie wiem, czy to jest w ogóle dobrze zaczęte. Z góry dziękuję za wszelkie sugestie!

#include <iostream>
#include <stack>
#include <conio.h>


int main() {
    
    std::stack < int > stos;
    stos.push( 0 );
    stos.push( 1 );
    stos.push( 2 );
    stos.push( 3 );
    stos.push( 4 );
    stos.push( 5 );
    
    int liczba = 0;
    do
    {
        std::cout << "Podaj liczbe (0 - konczy wprowadzanie liczb): ";
        liczba = 0;
        std::cin >> liczba;
        if( liczba != 0 ) stos.push( liczba );
        
    } while( liczba != 0 );
    
    std::cout << "Liczby zdjete ze stosu: ";
    while( stos.empty() == false )
    {
        std::cout << stos.top() << ", ";
        stos.pop();
    }
    getch();
    return 0;
}
0

Masz dokładną treść zadania? Jednoczesne hardkodowanie wartości początkowej i potem doczytywanie z wejścia standardowego nie wydaje się sensowne - powinno wystarczyć jedno z tych.

W całym kodzie masz jeden stos, a masz dodać jego elementy do (co najmniej) dwóch innych. Wypadałoby to zrobić.

0
kq napisał(a):

Masz dokładną treść zadania? Jednoczesne hardkodowanie wartości początkowej i potem doczytywanie z wejścia standardowego nie wydaje się sensowne - powinno wystarczyć jedno z tych.

W całym kodzie masz jeden stos, a masz dodać jego elementy do (co najmniej) dwóch innych. Wypadałoby to zrobić.

Program ma ściągnąć liczby ze stosu i umieścić je w 2 nowych stosach
Niestety nie wiem jak zainicjować nowe stosy wartościami z pierwszego. jestem bardzo początkująca, to jest mój pierwszy program w c++ od jakichś 5 lat, a niestety chcąc nie chcąc muszę to zrobić na środę. Być może dało się zacząć prościej, a cały program ograniczyć do kilku linijek, ale zupełnie nie wiem jak. Z resztą - nie mam zaleceń co do długości kodu, więc najważniejsze, żeby jakoś to dociągnąć do końca :D

1

   using intstack=std::stack<int>;

   intstack stos;
   int index=0;
   std::vector<intstack> vstos(50);

   for( auto i=0 ; i<1000 ; ++i ) stos.push(i*2);

   while( !stos.empty() )
   {
       vstos[index++ % vstos.size()].push( stos.top() ) ;
       stos.pop();
   }

dodaj tylko odpowiednie biblioteki

1 użytkowników online, w tym zalogowanych: 0, gości: 1