Wypełanianie tablicy kwadratowej po przekątnych
Ostatnio zmodyfikowano 2016-01-06 13:30
locf Temat założony przez niniejszego użytkownika |
Wypełanianie tablicy kwadratowej po przekątnych » 2016-01-06 13:30:06 Witam mam wypełnić liczbami naturalnymi tablicę po przekątnych idąc od prawej. Najpierw E1, potem E2, E3 itp E7 E4 E2 E1 E11 E8 E5 E3 E14 E12 E9 E6 E16 E15 E13 E10 Nie rozumiem jednak pewnych instrukcji zawartych w pętli p = 1; for( k = N - 1; k >= 0; k-- ) for( i = 0; i < N - k; i++ ) a[ i ][ i + k ] = p++;
for( k = 1; k < N; k++ ) for( i = k; i < N; i++ ) a[ i ][ i - k ] = p++;
Instrukcja for( k = N - 1; k >= 0; k-- ) oznacza, że zaczynam wypełnianie od ostatniej kolumny i każdym krokiem zmniejszam k, więc przesuwam się w lewo. Instrukcja for( i = 0; i < N - k; i++ ) oznacza, że zaczynam wypełnianie od pierwszego wiersza i kończę wypełnianie na wierszu mniejszym mniejszym od ilości elementów pomniejszonych o ilość kolumn. A co dokładnie oznacza ta instrukcja przypisania a[ i ][ i - k ] = p++; ?? Najpierw jest przypisanie, a potem inkrementacja, czy może najpierw inkrementacja, a potem przypisanie? Ta część jest jeszcze mniej zrozumiała. for( k = 1; k < N; k++ ) for( i = k; i < N; i++ ) a[ i ][ i - k ] = p++;
Chyba nie jest to wypełnianie tabeli pod przekątną, bo zaczynam tutaj od k = 1 ? |
|
« 1 » |