losowanie bez powtórzeń dla tablicy dwuwymiarowej

0

witam,zrobiłem program tak jak w temacie ale dla jednowymiarowej tablicy:

//losowanie liczb od 0...4 dla elementow tablicy 4-elementowej
#include <iostream>
#include<cstdlib>
#include<cmath>

using namespace std;

 int main()
{
int tab[4];
int losowa_liczba,n,i;
     
srand( time(NULL) );

  for(i=0;i<4;i++)
   {

         losowa_liczba = rand()%4+1;
          tab[i]=losowa_liczba;
           for(int k=0;k<i;k++)
          {
           if(losowa_liczba == tab[k])
                  {

                        i--;
                  }
                  }
        
   }

  for(int j=0;j<4;j++)
   {
   cout<<tab[j]<<" ";
   }
     
    cout<<endl<<endl;
    system("pause");
    return 0;
}

Jak on powinien wyglądać dla tablicy dwuwymiarowej?Bo jak na razie jeszcze sobie z tym nie poradziłem.

0
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>

using namespace std;

bool czy_powtarza(vector< vector<int> > tab, int m, int n, int number)
{
    for(int i=0;i<tab.size();i++)
    {
        for(int j=0;j<tab[0].size();j++)
        {
            if(i==m and j==n)return false;
            if(tab[i][j]==number)return true;
        }
    }
}


int main()
{
    srand(time(0));
    vector< vector<int> >tab(10,vector<int>(10));
    int losuj=rand()%(tab.size()*tab[0].size())+1;
    for(int i=0;i<tab.size();i++)
    {
        for(int j=0;j<tab[0].size();j++)
        {
            while(czy_powtarza(tab,i,j,losuj))losuj=rand()%(tab.size()*tab[0].size())+1;
            tab[i][j]=losuj;
            cout << tab[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    return 0;
}

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