Prośba o napisanie wywołania funkcji która wypełnia tablice dwuwymiarową zerami

0
//funkcja wypelniajaca tablice dwuwymiarową zerami

void zeruj(int tab[][101],int n, int m)
{
    for (int i=0;i<=n;i++)
    {
        for(int j=0;j<=m;j++)
        {
            tab[i][j]=0;
        }
    }
}
3

W C++ indeksy tablicy są liczone od zera, więc – zakładając, że n oraz m to rozmiary tablicy – jeśli liczysz zmienne i oraz j od zera, to i<=n oraz j<=m powinieneś zamienić na i<n oraz j<m. W przeciwnym razie podczas działania program będzie chcieć wejść do elementów tab[n][...] oraz tab[...][m], co spowoduje błąd (wyjście poza zakres tablicy, bo każda tablica największy rozmiar indeksu ma rozmiar - 1, a nie rozmiar).


UPDATE: Druga sprawa – podanie argumentu m do tej funkcji (nie pamiętam, czy to liczba kolumn, czy wierszy w C++) mija się z celem, skoro podajesz już go jako stałą, tzn. 101 (swoją drogą – nie znam się aż tak na C++, ale wydaje mi się to niezbyt ciekawym rozwiązaniem, żeby podawać rozmiar tablicy do funkcji jako stałą).


UPDATE 2: Zmień to, co napisałem w pierwszym akapicie, i powinno działać.

0

Czemu określasz rozmiar drugiego wymiaru tablicy?

#include <iostream>
using namespace std;

int main() {
	int tab[7][8] = {0};
	
	for (int i = 0; i < 7; i ++) {
		for (int j = 0; j < 8; j ++) {
			cout << tab[i][j];
		}
	}
	
	return 0;
}

Wypełnienie tablicy zerami najłatwiej uzyskać przy deklaracji: https://ideone.com/9jWPw3

0

Chodzi mi o napisanie kawałka kodu który uruchomi tą funkcję.

1
int main() {
    int tab[202][101];
    zeruj(tab, 202); // przy założeniu, że przekazujesz jedynie parametr n
    return 0;
}

W celu dodatkowego wyświetlenia tablicy możesz skorzystać z tych pętli, które napisał wyżej @Spine.

1 użytkowników online, w tym zalogowanych: 0, gości: 1