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

Wypełanianie tablicy kwadratowej po przekątnych

Ostatnio zmodyfikowano 2016-01-06 13:30
Autor Wiadomość
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
C/C++
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.
C/C++
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
 ?


P-142960
« 1 »
  Strona 1 z 1