C++ umieszczanie liczb w nowych stosach
Ostatnio zmodyfikowano 2019-04-23 17:02
HoneyBadger Temat założony przez niniejszego użytkownika |
» 2019-04-22 20:31:55 @pekfos tak, to jest treść zadania |
|
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. |
|
nanoant20 |
» 2019-04-22 23:11:10 dodaj sobie do swojego kodu std::stack < int > stos2;
std::cout << "Liczby zdjete ze stosu: "; while( stos.empty() == false ) { std::cout << stos.top() << ", "; stos2.push( stos.top() ); stos.pop(); }
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 |
|
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#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; std::stack < int > stos3; 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() << ", "; int tmp = stos.top(); if( tmp % 2 == 0 ) stos2.push( stos.top() ); if( tmp % 2 ) stos3.push( stos.top() ); stos.pop(); } cout << endl; cout << "dla liczb parzystych stos2 = "; while( !stos2.empty() ) { cout << stos2.top() << " "; stos2.pop(); } cout << endl; 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ę |
|
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 ^^ #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; } |
|
1 « 2 » |