Zerowanie macierzy

Zadanie 7 z 14 · rozdział 13Trudność: 2 z 3macierzeindeksy

Treść zadania

Wczytaj macierz n×m. Dla każdego zera w wejściowej macierzy wyzeruj cały jego wiersz i całą jego kolumnę. Zera powstałe w trakcie zerowania nie powodują dalszego zerowania.

Dane wejściowe

  • 1. linia: n m — liczba wierszy i kolumn (w jednej linii)
  • następnie n linii po m liczb całkowitych

Dane wyjściowe

n linii zmodyfikowanej macierzy.

Ograniczenia

  • 1 ≤ n, m ≤ 20

Uwagi

  • Najpierw zapamiętaj, które wiersze i kolumny zawierają zero, a dopiero potem zeruj — inaczej wyzerujesz całą macierz.

Przykład

Wejście
3 3
1 2 3
4 0 6
7 8 9
Wyjście
1 0 3
0 0 0
7 0 9
Zasady obowiązujące w rozdziale 13

Zadania w tym rozdziale ćwiczą pracę z listami dwuwymiarowymi (macierzami): tworzenie, wczytywanie, przechodzenie po wierszach i kolumnach oraz przekształcanie.
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).

Konwencje wspólne:

  • Dane wczytuj dokładnie w kolejności podanej w sekcji Wejście.
  • Wiersz macierzy na wejściu to jedna linia z liczbami oddzielonymi spacjami — wczytaj całą linię i rozbij ją po spacjach (input().split()).
  • W wyjściu macierzy: każdy wiersz w osobnej linii, elementy oddzielone pojedynczą spacją.
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
2 3
1 0 3
4 5 6
Oczekiwane wyjście
0 0 0
4 0 6

Test 2

Nie uruchomiono
Wejście
3 3
1 2 3
4 5 6
7 0 9
Oczekiwane wyjście
1 0 3
4 0 6
0 0 0

Test 3

Nie uruchomiono
Wejście
2 2
1 2
3 4
Oczekiwane wyjście
1 2
3 4

Test 4

Nie uruchomiono
Wejście
1 1
0
Oczekiwane wyjście
0

Test 5

Nie uruchomiono
Wejście
3 4
0 1 2 3
4 5 6 7
8 9 0 1
Oczekiwane wyjście
0 0 0 0
0 5 0 7
0 0 0 0

Test 6

Nie uruchomiono
Wejście
1 4
5 0 7 8
Oczekiwane wyjście
0 0 0 0
Uruchom z własnymi danymi