Zwracanie tablicy w podany sposób

0

Cześć,

Mam problem odnośnie pewnego zadania, mianowicie wczytuje w wywołaniu metody tablice jednowymiarowe, które są łączone w tablice wielowymiarowe (macierz) a następnie muszę to zmienić na tablicę jednowymiarową (wektor) według pewnego schematu:

indeks w tablicy wynikowej | indeks tablicy | indeks elementu tablicy
     0                            0                0
     1                            1                0
     2                            2                0
     3                            0                1
     4                            1                1
     5                            2                1
     6                            0                2
     7                            1                2
     8                            2                2

Dla przykładu wczytuje tab1 = {1, 2, 3}, tab2 = {3, 4, 5}.

Tworzę z tego macierz:
1 2 3
3 4 5

W rezultacie powinienem uzyskać tablicę wynikową tab3 = {1, 3, 2, 4, 3, 5}, lecz nie potrafię stworzyć pętli, która mi wypisze elementy według tego indeksowania oraz żeby było to napisane w sposób, że będzie dobrze działało niezależnie od ilości wczytanych tablic. Jedynie tablice muszą być identycznych wielkości.

Z góry dzięki za pomoc i pozdrawiam!

0

Coś w ten deseń?

#include <iostream>
#include <vector>

using namespace std;

int main() {
  
 vector< vector<int> > tab = { {1,2,3}, {3,4,5} };

    for (int j = 0; j < tab[0].size(); ++j)  {
      for (int i=0; i < tab.size(); ++i) {
        cout<<tab3[i][j];
    }
     
  }
 
}
0

Połączenie:

    private int[][] join(int[]... tabs)
    {
        int howMany = 0;
        int size = 0;
        for (int[] tab: tabs)
        {
            howMany++;
            size = tab.length;
        }
        int[][] result = new int[howMany][size];
        int row = 0;
        for(int[] tab: tabs)
        {
            result[row] = tab;
            row++;
        }
        return result;
    }

Wypisanie (nie rozumiem w czym problem):

    private void displayInLine(int[][] tab)
    {
        for(int i = 0; i < tab.length; i++)
        {
            for(int j = 0; j < tab[0].length; j++)
            {
                System.out.print(tab[i][j] + " ");
            }
        }        
    }

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