Witam,
od niedawna uczę się programować w Javie i dostałem kilka zadań, wśród których jest jedno o wspomnianej w tytule Transpozycji tablicy. Zadanie to polega na tym, że trzeba napisać funkcję sprawdzającą czy podana tablica jest kwadratowa i jeśli tak, to wykonującą transpozycję tej tablicy, a jeśli nie to zwracającą null.
Polecenie brzmi tak: Napisz funkcję, która wykonuje transpozycję tablicy metodą przestawiania elementów wewnątrz tablicy (bez tworzenia dodatkowej tablicy), tablica musi być kwadratowa, jeżeli nie spełnia tego warunku wartością funkcji jest null.
Szukałem jakichś rozwiązań w internecie, lecz nic nie znalazłem. Próbowałem też pisać sam, ale co bym nie zrobił, ciągle wychodzi źle.
Jedyne co do tej pory napisałem to takie coś:
public static int[][] transponujTablice2(int[][] t, int rozmiar1, int rozmiar2) {
if (rozmiar1 >= 2 && rozmiar2 >= 2) {
for (int i = 0; i < t.length; i++) {
for (int j = 0; j < t[i].length; j++) {
t[i][j] = t[j][i];
}
}
return t;
}
return null;
}
Problem tkwi w tym, że to nie działa i sam jestem świadomy dlaczego, lecz to jedyny mój pomysł i taki "punkt zaczepienia", od którego nie wiem jak pójść dalej. Nie jestem po prostu w stanie tego naprawić ani wykombinować nic sensownego. Dlatego też proszę o pomoc i ze względu na to, że dopiero zaczynam naukę Javy, "łopatologiczne" wytłumaczenie czemu musi być tak, a nie inaczej. Za wszelką pomoc z góry dziękuję.
array.length == array[0].length
, prawda? ;).andy.andy