Faire une recherche dans un tableau

Fermé
muntu - 17 juil. 2010 à 12:15
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 - 17 juil. 2010 à 12:58
Bonjour,

Je suis nouveau en programmation, est ce que quelqu'un veut bien m'aider à améliorer mon code ? Je dois remplir un tableau aléatoirement avec un random mais sans doublon.

Donc si le nombre se trouve déjà dans mon tableau je l'enregistre pas et j'enregistre seulement ceux qui ne se trouve pas encore dans mon tableau.

je génère un nombre, je regarde s'il n'est pas, puis je l'enregistre, seulement je n'y arrive pas vraiment car j'ai tjrs des doublons:

voici mon code :

for(int i=0; i<tab.length; i++)

{
for(int j=0; j<tab.length; j++)

{


Random r = new Random();
int valeur = 2 + r.nextInt(16);

for(int k=0; k<tab.length; k++)

{

for(int l=0; l<tab.length; l++)

{

if(tab[k][l]==valeur) {

count++;

}

}
}



if(count<=0){


tab[i][j]=valeur;} }}
A voir également:

1 réponse

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
17 juil. 2010 à 12:58
Salut,
c'est en Java?
si oui, tu peux t'inspirer de cela...
static final int nb_col=20,nb_ligne=3;
    public static void main(String[] args) {


        int [][] tab=new int[nb_col][nb_ligne];
        for(int i=0; i<nb_col; i++)
        {
            int valeur;
            for (int j=0;j<nb_ligne;j++)
            {
                do{
                    Random r = new Random();
                    valeur = 2 + r.nextInt(64);
                }while(IsEqual(tab,valeur));
                tab[i][j]=valeur;
            }

        }
    }
    static private boolean IsEqual(int[][] tab,int val)
    {
        boolean IsEqual=false;
        for (int i=0;i<nb_col;i++)
        {
            for (int j=0;j<nb_ligne;j++)
            {
                if (tab[i][j]==val){
                    IsEqual=true;
                    break;
                }
            }
            if (IsEqual)
                break;
        }
        return IsEqual;
    }

je pense que la fonction IsEqual doit exister mais j'ai pas trop cherché!!;)
@+
0