Jericho 0 Posté(e) le 7 mai 2007 Partager Posté(e) le 7 mai 2007 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
Jericho 0 Posté(e) le 7 mai 2007 Auteur Partager Posté(e) le 7 mai 2007 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
Jericho 0 Posté(e) le 7 mai 2007 Auteur Partager Posté(e) le 7 mai 2007 :sorry :sorry :sorry J'ai trouvé mon erreur, je modifiais ma variable paire (dans une autre fonction) avant son affichage... :roi Lien à poster
Sharpshooter 0 Posté(e) le 7 mai 2007 Partager Posté(e) le 7 mai 2007 Jéricho, si tu as d'autres questions, n'hésite pas, Jericho sera toujours là pour te répondre. Lien à poster
momo 18 Posté(e) le 7 mai 2007 Partager Posté(e) le 7 mai 2007 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
Jericho 0 Posté(e) le 7 mai 2007 Auteur Partager Posté(e) le 7 mai 2007 Jéricho, si tu as d'autres questions, n'hésite pas, Jericho sera toujours là pour te répondre. :oups Lien à poster
Messages recommandés