Aller au contenu

Doublon dans un tableau d'entiers


Jericho

Messages recommandés

Bonjour,

Je m'en remets à vous car je pense que je vais devenir dingue O.o

Je dois effectuer une simple recherche dans un tableau et si dans ce tableau il y a deux nombres égaux, une variable retient la valeur qui est égale et c'est tout...

Donc en gros, je peux avoir un tableau du genre : 3 2 3 4 2 5 6 6 7

Et ma valeur retournée serait 3 (la première valeur en double).

Voici mon code :

Mon tabpaire est composé de valeurs aléatoires.

for (i = 0; i < tabpaire.Length - 1; i++)
           {
               for (j = 0; j < tabpaire.Length - 1 - i; j++)
               {
                   if (tabpaire[j + 1] < tabpaire[j])
                   { 
                       tmp = tabpaire[j];
                       tabpaire[j] = tabpaire[j + 1];
                       tabpaire[j + 1] = tmp;
                   }
               }
           }

           for (i = 0; i < tabpaire.Length - 1; i++)
           {
               if (tabpaire[i] == tabpaire[i + 1])
               {
                   paire = tabpaire[i];
               }
           }

Ca fonctionne mais pas toujours, de temps en temps il trouve une paire qui n'existe pas ou alors ne trouve pas une existante, etc.

(Ce code est en C# pour info)

Merci d'avance pour votre aide :top

Lien à poster

Bon, après quelques tests, mon tri fonctionne très bien...

Ce qui, à la limite, ne m'arrange pas car le problème vient donc juste de là :

for (i = 0; i < tabpaire.Length-1 && bol == 0; i++)

{

if (tabpaire == tabpaire[i + 1])

{

paire = tabpaire;

bol = 1;

}

}

Je rappelle qu'à ce moment, tabpaire est un tableau d'entiers (non-identiques) trié et que je recherche les deux premiers nombres consécutifs (s'il y en a dans le tableau) qui seront inscris dans la variable "paire".

Je deviens fou!! :cry

Edit : Les balises codes m'inserent des sales caractères, je mets en "quote".

Lien à poster

autrement si tes nombres vont de 0 à 9, tu peux faire un tableau de 10 éléments et incrémenter chacun d'entre eux en fonction des nombres rencontré dans le tableau, ce qui permet de trouver les redondances en une passe ... pour chaque tableau ;)

Lien à poster
×
×
  • Créer...