Wyświetlanie tablicy w osobnej procedurze

Odpowiedz Nowy wątek
2015-01-18 14:20
0

Witam mam problem, mianowicie napisałem program który tworzy mi tablice o dowolnych wymiarach a x b, użytkownik wpowadza do niej swoje dane. I teraz chciałbym wyświetlić tą tablice w takiej kolejności np.
Tablica 2x3 użytkownik wprowadził swoje dane i wychodzi coś takiego:

[0][0]=1 [0][1]=2 [0][2]=3
[1][0]=4 [1][1]=5 [1][2]=6

#include <iostream>
using namespace std;
int a,b,c,d;
unsigned int wypelnij()
{
    cout << "Podaj wiersze i kolumny: ";
    cin >> a >> b;
    int tab[a][b];
    for (int i=0; i<a; i++)
    {
        for (int j=0; j<b; j++)
        {
            cout << "Podaj wartosc elementu ";
            cin >> tab[i][j];
        }
    }
}
int pokaz()
{
    for (int i=0; i<a; i++)
    {
        for (int j=0; j<b; j++)
        {
            cout << tab[i][j] <<"["<<i<<"]"<<"["<<j<<"]\n" ;
        }
    }
}
int main()
{
    wypelnij();
    pokaz();
}

Program musi być w 2 procedurach, w jednej się tworzy , a w drugiej się wyświetla, kiedy zrobiłem drugą procedure z wyświetlaniem nie mogę się odwołać do tablicy

Pozostało 580 znaków

2015-01-18 14:47
0

Z tablicą tak tworzoną (int tab[a][b];) niewiele możesz zdziałać oprócz lokalnego użycia, ba nie wszystkie kompilatory to obsłużą.
Najlepszym sposobem jest stworzenie jednowymiarowej tablicy w której trzymać dane wierszami.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
pfff On tą tablicę stworzył lokalnie w funkcji "wypelnij". - Ola Nordmann 2015-01-18 15:43

Pozostało 580 znaków

2015-01-18 15:02
0

Jednowymiarowa tablica odpada, chodzi mi tutaj konkretnie o dwuwymiarową. Nie ma opcji aby wywołać tablice w 2 procedurze?

Pozostało 580 znaków

2015-01-18 15:12
0

Jeżeli stworzysz ją dynamicznie to możesz zwrócić i przekazać.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-18 15:16
0

Nie jestem tak biegły w C++ , może jakaś podpowiedź?

Pozostało 580 znaków

2015-01-18 15:28
0

http://bit.ly/1sQhYX9


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-18 15:46
0
int** tab = NULL;

//...

tab = new int[a];
for( int i=0; i<a; tab[i++] = new int[b] ) 

Pozostało 580 znaków

2015-01-18 15:54
0
unsigned int wypelnij()
{
    cout << "Podaj wiersze i kolumny: ";
    cin >> a >> b;
    int tab[a][b];
    for (int i=0; i<a; i++)
    {
        for (int j=0; j<b; j++)
        {
            cout << "Podaj wartosc elementu ";
            cin >> tab[i][j];
        }
    }
} 
unsigned int wypelnij(int **tab[a][b])
{
    cout << "Podaj wiersze i kolumny: ";
    cin >> a >> b;

    for (int i=0; i<a; i++)
    {
        for (int j=0; j<b; j++)
        {
            cout << "Podaj wartosc elementu ";
            cin >> tab[i][j];
        }
    }
}

Powinno to wyglądać tak?

Pozostało 580 znaków

2015-01-18 15:59
1

Gwarantuje ci że pisanie programów metodą prób i błędów z góry skazane na porażkę.
Weź przeczytaj jakiś kurs.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
To jest antypattern - programowanie progresywne. - Ola Nordmann 2015-01-18 16:02

Pozostało 580 znaków

2015-01-18 16:05
0

Rozumiem , z tym że próbowałem to zapisywać na kilka sposób i wywala mi notorycznie błędy

Pozostało 580 znaków

2015-01-18 16:10
1

Panie... Doczytaj Pan, albo zamów gotowy program. Masa ludzi ma tutaj ogłoszenia w sygnaturze.


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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