Rozdział 44 - zadanie domowe
Ostatnio zmodyfikowano 2018-09-25 19:09
undefined Temat założony przez niniejszego użytkownika |
Rozdział 44 - zadanie domowe » 2018-09-24 21:45:55 Witam, prosiłbym o sprawdzenie kodu. #include <iostream>
using namespace std;
int main() { int * tablica = nullptr, rozmiar = 1, licznik = 0; cout << "Podawaj liczby, 0 konczy wczytywanie.\n"; bool czy = false; while( true ) { int * nowa = new int[ rozmiar ]; for( int i = 0; i < rozmiar / 2 && rozmiar > 1; ++i ) nowa[ i ] = tablica[ i ]; delete[] tablica; if( czy ) { tablica = nowa; break; } int liczba; for( int i = 0; i < rozmiar / 2; i++ ) { cin >> liczba; if( liczba == 0 ) { czy = true; break; } nowa[ licznik ] = liczba; licznik++; } tablica = nowa; if( czy ) { rozmiar = 2 * licznik; continue; } rozmiar *= 2; } cout << "Te same liczby, ale odwrocone" << endl; for( int i =( licznik - 1 ); i >= 0; i-- ) { cout << tablica[ i ] << endl; } delete[] tablica; }
|
|
pekfos |
» 2018-09-24 23:56:27 Przekombinowane. |
|
undefined Temat założony przez niniejszego użytkownika |
» 2018-09-25 18:55:37 Co dokładnie? Problemów przysporzyło mi przerwanie głównej pętli while w drugiej zagnieżdżonej. Może lepiej byłoby ostatnie tworzenie tablicy wyciągnąć poza pętlę? Oszczędziłoby to sprawdzanie warunku w każdej iteracji. |
|
pekfos |
» 2018-09-25 19:09:34 Wszystko przekombinowane. Praktycznie cały potrzebny kod już był, wystarczy jego część wykonywać warunkowo. Jeśli brakuje miejsca, powiększ tablice. Dodaj element. W pętli. To wszystko realizuje kod dany do zadania, tylko że tam zawsze brakuje miejsca, więc zawsze trzeba tworzyć nową tablicę. |
|
« 1 » |