Tablica dwuwymiarowa w jednej pętli lub Jednowymiarowa w dwóch pętlach.

0

Mam dwie tablice : jednowymiarową i dwuwymiarową.
I chcę wyświetlić je na raz.

np.

int x = 4;
int y = 3;
int tab2[x][y];
int tab1[x*y];

for(int j = 0; j <= 3; j++)
{
    for (int i = 0; i <= 4; i++)
    {
          cout << "tab2 - " <<tab2[i][j] << "       ";
          cout << "tab1 - " << tab1[?]  << endl;
    }
}

Lub odwrotnie tą dwuwymiarową umieścić w pojedynczej pętli i też nie wiem jak mam zmieniać indeksy ?

0

j*4+i + wychodzisz po za zakres w obu przypadkach.

0
for(int j = 0, k = 0; j <= 3; j++)
{
    for (int i = 0; i <= 4; i++)
    {
          cout << "tab2 - " <<tab2[i][j] << "       ";
          cout << "tab1 - " << tab1[k++]  << endl;
    }
}
0

Dziękuje wszystko działa.

A jest sposób na zrobienie tego w drugi sposób.

tzn dwuwymiarowa tablica w jednej pętli i skakanie po indeksach tak aby szły równo z jednowymiarową tablica ?

0

zrobiłem z dodatkowymi zmiennymi ale wzór był by lepszy o ile istnieje.

    int a = 0,b = 0;
    for(int i = 0; i < x*y; i++)
    {
            cout << "tab2 - " << a << " " << b << " :  " << tab2[a][b]   << "       ";
            cout << "tab1 - " << i  << "    : "  << tab1[i]  << endl;
            a++;
            if (a > 3)
            {
                a = 0;
                b++;
            }
    }
0
const size_t Y=4,X=3;
int tb[Y][X];
for(size_t i=0;i<Y*X;++i) cout<<tb[i/X][i%X]<<' ';

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