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

Wskaźniki i dynamiczne alokowanie pamięci

Ostatnio zmodyfikowano 2015-11-07 16:07
Autor Wiadomość
JanuszPP
Temat założony przez niniejszego użytkownika
Wskaźniki i dynamiczne alokowanie pamięci
» 2015-11-07 15:52:13
Witam, mam pewne problemy z określonym problemem. Nie do końca rozumiem jak to powinno wyglądać. Mógłby ktoś napisać kod/wytłumaczyć jak to powinno wyglądać?

W programie zadeklarować zmienną wskaźnikową t, która wskazuje na początek tablicy o rozmiarze n (liczbie elementów) wczytywanym z klawiatury. Elementami tablicy są wskaźniki na początki tablic z liczbami całkowitymi. Pod indeksem i jest wskaźnik na początek tablicy o rozmiarze i+1. Wykorzystując zagnieżdżone pętle while wypełnić wszystkie tablice kolejnymi liczbami całkowitymi zaczynając od zera (najpierw wypełniamy tablicę pod indeksem 0, potem pod indeksem 1 itd.).
Wypełnione tablice wypisać w kolejnych liniach na ekranie.
Przykład wyników dla n=4:
0
1 2
3 4 5
6 7 8 9
P-139761
Gibas11
» 2015-11-07 16:07:05
C/C++
int main()
{
    int n;
    int ** tablica;
   
    cin >> n;
    tablica = new int *[ n ];
   
    for( int i = 0, c = 0; i < n; i++ )
    {
        tablica[ i ] = new int[ i + 1 ];
        for( int j = 0; j < i + 1; j++ )
        {
            tablica[ i ][ j ] = c++;
        }
    }
   
    for( int i = 0; i < n; i++ )
    {
        for( int j = 0; j < i + 1; j++ )
        {
            cout << tablica[ i ][ j ] << ' ';
        }
        cout << endl;
    }
   
    return 0;
}

int ** tablica;
 - Deklaracja tablicy tablic (a raczej wskaźnika na wskaźnik).

C/C++
for( int i = 0, c = 0; i < n; i++ )
{
    tablica[ i ] = new int[ i + 1 ];
    for( int j = 0; j < i + 1; j++ )
    {
        tablica[ i ][ j ] = c++;
    }
}
Wypełnienie jej.
c
 przechowuje liczbę, którą będziesz wpisywał do kolejnych elementów.
tablica[ i ][ j ] = c++;
 - Zwyczajne wpisanie liczby do tablicy dwuwymiarowej i postinkrementacja
c
.

C/C++
for( int i = 0; i < n; i++ )
{
    for( int j = 0; j < i + 1; j++ )
    {
        cout << tablica[ i ][ j ] << ' ';
    }
    cout << endl;
}
I wyświetlenie.
P-139763
« 1 »
  Strona 1 z 1