Funkcja wyświetlająca tablice dwuwymiarową

0

Otóż tak, mam dwie fukncje: pierwsza jest taka ze podaje wymiar tablicy dwuwymiarowej i robi mi tabliczke mnożenia, w drugiej funkcji podaje dwa argumenty, wiersz i kolumne i też robi mi tabliczke mnożenia

Problem jest z trzecią funkcją która ma wyświetlić podaną wcześniej tablice dwuwymiarową np. void Wyswietl(Podajemy tablice dwuwymiarową) i ta funkcja ma ją wyświetlić ale nie mam za bardzo pojęcia jak to zrobić
np. funkcja tabliczki mnożenia wygląda tak:

 
int TabliczkaMnozenia(int wymiar)
{
int ** tablica = new int * [wymiar];

for (int i = 0; i<wymiar; i++)
	tablica[i] = new int [wymiar];
for (int i = 0; i<wymiar; i++)
{
    for(int j=0; j<wymiar; j++)
    {
        tablica[i][j] = (i+1)*(j+1);
    }
}
return **tablica;

// zwalnianie pamieci
for (int i = 0; i<wymiar; i++)
	delete [] tablica[i];

delete [] tablica;
}

i teraz trzeba ją jakoś wyświetlić

1

Po prostu przekaż tę tablice do funkcji wyświetlającej jako argument.

Tak np:

#include<iostream>
#include<iomanip>
using namespace std;

// Przekazanie za pomocą referencji, żeby nie tworzyć kopii wskaźnika.
void tworzTabliczke(int **&tab, int roz) {
    tab = new int*[roz];
    for (int i = 0; i < roz; i++) tab[i] = new int[roz];
    for (int i = 0; i < roz; i++)
        for (int j = 0; j < roz; j++)
            tab[i][j] = (i + 1) * (j + 1);
}

void pokaz(int **tab, int roz) {
    for (int i = 0; i < roz; i++) {
        for (int j = 0; j < roz; j++)
            cout << std::setw(5) << tab[i][j];
        cout << endl;
    }
}

void niszcz(int **tab, int roz) {
    for (int i = 0; i < roz; i++)
        delete [] tab[i];
    delete[] tab;
}

int main() {
    int **tab = nullptr;
    tworzTabliczke(tab, 5);
    pokaz(tab, 5);
    niszcz(tab, 5);
    return 0;
}
0

co oznacza to nullptr? Nie wystarczy samo 0?

0

ok dzieki wielkie, pomoglo mi bardzo ;)

EDIT: jednak jest maly problem bo polecenia sa takie:
1.Stwórz funkcję biorącą jako argument wymiar tabliczki mnożenia - np. int
a=3, oznacza tabliczkę 3x3. Funkcja ma zwracać tablicę dwuwymiarową (int
**) liczb całkowitych wypełnioną tabliczką mnożenia. Do wypełnienia ta-
bliczki zastosuj odpowiednio ustawione mnożenie indeksów pętli wypełniają-
cych.
2.Funkcję, która na podstawie dwóch argumentów stworzy dwuwymiaro-
wą (a x b) tablicę i zwróci ją tak jak w przypadku zadania 1 (int **).
Funkcja ma poprawnie alokować pamięć.
3.Stwórz funkcję, która poprawnie wyświetli tablicę dwuwymiarową (int **),
zadbaj o równe odstępy między kolumnami (tabulator). Wykorzystają ją do
wyświetlania tablic z zadań

te funkcje musza zwrocic tablice i dopiero ta tablice trzeba wyswietlic

EDIT: Poradziłem sobie :)

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