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

Rozdział 44 - zadanie domowe

Ostatnio zmodyfikowano 2018-09-25 19:09
Autor Wiadomość
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.

C/C++
#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;
}
 
P-172402
pekfos
» 2018-09-24 23:56:27
Przekombinowane.
P-172404
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.
P-172409
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ę.
P-172411
« 1 »
  Strona 1 z 1