Mam pytanie jak oznaczyć w macierzy zera niezależne czyli tak że na danej linii pionowej lub poziomej może się znajdować tylko jedno zero i później wyświetlić na jakich współrzędnych jest to zero (i,j) i ile jest tych zer niezależnych
Prosze o pomoc
Poniżej przykładowa macierz
a poźniej chce “wykreślić” wszystkie zera jak najmniejszą liczbą “linii”
A, czy to jest ważne, jak dobierają się, elementy w tablicy/macierzu? Albo są losowane, albo z podanego wzoru.
Moim zdaniem można by zrobić, tak, że w programie zapamiętywać podane pole i rekord w którym znajduje się 0 oraz następnie porównać z liczbami z kolumny i wiersza. No, ale łatwiej się mówi niż pisze, jednak wydaje się to mi realny sposób.
Vector, tablica. Jednak to nie byłby najładniejszy sposób to jest racja :?. Można by było sprawdzać, czy w tablicy podany element jest 0, następnie kiedy na taki element by trafiło, sprawdzone zostałyby właśnie ta kolumna i wiersz
następnie zrobić by
if (tab[i,j] == 0) /*NULL <- teoretycznie kiedyś czytałem, że tego się nie stosuje, ale zazwyczaj działa :)*/
licznik++;
Można też zrobić tak (stosunkowo łopatologiczny sposób). Najpierw przechodzisz po wszystkich wartościach macierzy (dwie zagnieżdżone pętle) i tworzysz tablicę punktów (każdy taki punkt to struktura zawierająca trzy pola -> wiersz / kolumna / czyNiezalezne - domyślna wartość to true) zawierającą informację o lokalizacji wszystkich zer w macierzy. Następnie przechodzisz po elementach tej tablicy punktów i porównujesz każdy punkt z każdym (dwie zagnieżdżone pętle). Jeśli dla jakiegoś punktu z tej tablicy wiersz lub kolumna mają te same wartości co dla innego punktu z tej tablicy, tzn. że dla obu tych punktów musisz ustawić wartość czyNiezalezne na false. Na końcu przechodzisz pojedynczą pętlą po wszystkich elementach tablicy punktów i wypisujesz tylko te 0, dla których wartość pola czyNiezalezne jest wciąż true.