Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ umieszczanie liczb w nowych stosach

Ostatnio zmodyfikowano 2019-04-23 17:02
Autor Wiadomość
HoneyBadger
Temat założony przez niniejszego użytkownika
» 2019-04-22 20:31:55
@pekfos
tak, to jest treść zadania
P-174505
pekfos
» 2019-04-22 21:40:30
Teraz moje rozwiązanie na 1 linię kodu nie spełnia wymagań. Nie bardzo widzę sens tego zadania, ale jeśli to jest wszystko to utwórz te 2 nowe stosy - tak samo jak ten 1 który już masz. Liczby możesz wrzucać do nich w tej ostatniej pętli. Masz w kodzie wyciąganie liczby ze stosu i wrzucanie liczb na stos, nie widzę jakie możesz mieć dalej problemy. W zasadzie jedyne co masz do napisania to nazwy tych nowych stosów, resztę możesz wykonać taktycznymi Ctrl+C, Ctrl+V, bo nie robisz nic, czego już nie ma w tym kodzie.
P-174507
nanoant20
» 2019-04-22 23:11:10
dodaj sobie do swojego kodu
C/C++
std::stack < int > stos2; //add line

std::cout << "Liczby zdjete ze stosu: ";
while( stos.empty() == false )
{
    std::cout << stos.top() << ", ";
    stos2.push( stos.top() ); //add line
    stos.pop();
}
//add printing
cout << "stos2 = ";
while( !stos2.empty() ) {
    cout << stos2.top() << " ";
    stos2.pop();
}

dodanie 3-go stosu nie powinno sprawić ci problemu
rozdzielić elementy na pozostałe stosy można na różne sposoby
- podziel np. na parzyste i nieparzyste
- wypisac co 2-gi element, tzn. 1-el na stos2 2-el na stos3 itd.
- odwzorować działanie Wieży Hanoi <-- it's joke

P-174508
nanoant20
a gift from me
» 2019-04-23 13:28:47
to jest mój pierwszy program w c++ od jakichś 5 lat,
a niestety chcąc nie chcąc muszę to zrobić na środę. itd...
ponieważ, nie wiem na którą środę
a Ja nie mam czasu obserwować Twojego progress'u
więc daje taki a gift from me

C/C++
#include <iostream>
#include <stack>

using namespace std;

int main()
{
    std::stack < int > stos;
    stos.push( 0 );
    stos.push( 1 );
    stos.push( 2 );
    stos.push( 3 );
    stos.push( 4 );
    stos.push( 5 );
   
    cout << "stos.size(); " << stos.size() << endl;
   
    std::stack < int > stos2; //add line
    std::stack < int > stos3; //add line
   
    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 );
   
    /*  LEGENDA stack from the site cpp0x.pl
        push - umieszczenie nowego elementu na szczycie stosu;
        pop - zdjęcie istniejącego elementu ze szczytu stosu;
        empty - informacja czy stos jest pusty;
        size - zwraca ilość elementów umieszczonych na stosie;
        top - zwraca wartość szczytowego elementu na stosie.
    */
    //modify code and add line
    std::cout << "Liczby zdjete ze stosu: ";
    while( stos.empty() == false )
    {
        std::cout << stos.top() << ", ";
        int tmp = stos.top(); //add line
        //cout << "tmp: " << tmp << endl; //zakomentować cout check
        if( tmp % 2 == 0 ) //lub if(!(tmp%2)) dla parzystych
             stos2.push( stos.top() ); //umieszczenie nowego elementu
       
        if( tmp % 2 ) //lub if(tmp%2==1) dla nieparzystych
             stos3.push( stos.top() ); //umieszczenie nowego elementu
       
        stos.pop(); //zdjęcie istniejącego elementu
    }
   
    cout << endl;
   
    // printing stos 2 dla parzystych
    cout << "dla liczb parzystych stos2 = ";
    while( !stos2.empty() ) {
        cout << stos2.top() << " ";
        stos2.pop();
    }
   
    cout << endl;
    // printing stos 3 dla nieparzystych
    cout << "dla liczb nieparzystych stos3 = ";
    while( !stos3.empty() ) {
        cout << stos3.top() << " ";
        stos3.pop();
    }
    cout << endl;
    cin.get(); cin.get();
    return 0;
}

- uważam że program jest w miarę czytelny
- nalezy doszlifować i wgryźć się w temat,
- można wzbogacić funkcjonalność programu
- jeżeli są jakieś UWAGI to wprowadzić korektę
P-174509
HoneyBadger
Temat założony przez niniejszego użytkownika
» 2019-04-23 17:02:23
@nanoant20
Zadanie jest na jutro, tak więc pięknie dziękuję za pomoc! <3


W razie jakby ktoś kiedyś potrzebował (XD) to wrzucam kod po poprawkach. oby było dobrze ^^
C/C++
#include <iostream>
#include <stack>
using namespace std;



int main() {
   
    stack < int > stos1, stos2, stos3; int liczba = 0;
   
   
   
    do {
        cout << "\n Wpisz liczbe (nacisnij 0 by zakonczyc): ";
        liczba = 0;
        cin >> liczba;
        if( liczba != 0 ) stos1.push( liczba );
       
    }
   
    while( liczba != 0 );
   
    cout << "\n Wielkosc stosu: " << stos1.size() << endl;
    cout << "\n Zdjete liczby: ";
   
    while( stos1.empty() == false )
    {
        cout << stos1.top() << ", ";
        int tmp = stos1.top();
       
        if( tmp % 2 == 0 )
             stos2.push( stos1.top() );
       
        if( tmp % 2 )
             stos3.push( stos1.top() );
       
        stos1.pop();
    } cout << endl;
   
   
   
    cout << "\n Liczby parzyste: ";
    while( !stos2.empty() )
    { cout << stos2.top() << " ";
        stos2.pop();
    }
    cout << endl;
   
    cout << "\n Liczby nieparzyste: ";
    while( !stos3.empty() )
    { cout << stos3.top() << " ";
        stos3.pop();
    }
    cout << endl;
   
   
    cin.get(); cin.get();
    return 0; }
P-174510
1 « 2 »
Poprzednia strona Strona 2 z 2