tableaux

tableaux - C - Programmation

Marsh Posté le 27-12-2004 à 20:51:19    

:hello:  
voila g une petite questions!!!!
je vudrai savoir si qqn pouvais m'aider en me disant comment faire pour regarder et afficher un monbre qu'il y a en double ds un tableaux!
merci d'avance!!!

Reply

Marsh Posté le 27-12-2004 à 20:51:19   

Reply

Marsh Posté le 27-12-2004 à 20:53:25    

heink ? tu cherches quoi ? à faire une recherche de doublon ?

Reply

Marsh Posté le 27-12-2004 à 21:16:45    

lol733 a écrit :

:hello:  
voila g une petite questions!!!!
je vudrai savoir si qqn pouvais m'aider en me disant comment faire pour regarder et afficher un monbre qu'il y a en double ds un tableaux!
merci d'avance!!!


C'est plus une question d'algorithme (basique) que de C...


FAIRE parcourir le tableau.
 SI la valeur lue est celle que l'on cherche  
   on a un doublon...
 FIN SI
TANT QUE ce n'est pas la fin du tableau


Message édité par Emmanuel Delahaye le 27-12-2004 à 21:16:59

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 27-12-2004 à 21:54:25    

Je pense qu'il ne connais pas a l'avance le nombre qu'il cherche, donc c'est un peu plus complique. Tu peux mettre les nombres dans un hash au fur et a mesure que tu les rencontre. Quand tu rencontre un nombre qui est deja dans le hash, c'est un doublon. Tu peux aussi faire ca sans hash mais ca sera probablement plus lent. Ou alors tu peux faire un qsort() pour trier ton tableau, puis le parcourir en comparant chaque nombre au nombre de la case precedente... Suivant les cas ca pourrait etre plus rapide ou plus lent.

Reply

Marsh Posté le 27-12-2004 à 22:01:01    

ben je voudrai k'il me dise si un nombre se retrouve 2 fois!!!
merci pr les réponses!!!

Reply

Marsh Posté le 27-12-2004 à 22:09:32    

deux méthodes simples :
- tu tries. Tu parcours ton tableau trié : si tab[i] == tab[i + 1], pan, y a un doublon
- pour chaque nombre x de ton tableau, tu parcours ton tableau, et si tu trouves plus d'1 occurence, y a un doublon

Reply

Marsh Posté le 27-12-2004 à 22:10:47    

ok je voi ce ke tu ve dir mais comment trier le tableau!

Reply

Marsh Posté le 27-12-2004 à 22:11:25    

avec qsort

Reply

Marsh Posté le 27-12-2004 à 22:13:39    

je comprend pas comment l'utiliser!!! Est ce que tu pourrai me donner un exemple?

Reply

Marsh Posté le 27-12-2004 à 22:24:58    

Code :
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. static int lexsort(const void *a, const void *b)
  5. {
  6. return strcmp(
  7.  *(const char**)a,
  8.  *(const char**)b
  9.  );
  10. }
  11. int main(int argc, char **argv)
  12. {
  13. int i;
  14. const char **args;
  15. args = malloc(argc * sizeof *args);
  16. if(!args) return 1;
  17. memcpy(args, argv, argc * sizeof *args);
  18. qsort(args, argc, sizeof *args, lexsort);
  19. for(i=0; i<argc; ++i)
  20. {
  21.  printf("%s ", args[i]);
  22. }
  23. putchar('\n');
  24. free(args);
  25. return 0;
  26. }

Reply

Marsh Posté le 27-12-2004 à 22:24:58   

Reply

Marsh Posté le 27-12-2004 à 22:26:40    

merci beaucoup!!!!!!
je mis met tt de suite!!!

Reply

Marsh Posté le 27-12-2004 à 22:26:52    

lol733 a écrit :

je comprend pas comment l'utiliser!!! Est ce que tu pourrai me donner un exemple?



#include <stdio.h>
#include <stdlib.h>
 
static int compare (void const *pa, void const *pb)
{
   int const *pi_a = pa;
   int const *pi_b = pb;
 
   if (*pi_a == *pi_b)
   {
      return 0;
   }
   else
   {
      if (*pi_a > *pi_b)
      {
         return 1;
      }
      else
      {
         return -1;
      }
   }
}
 
static void print (int *p, size_t n)
{
   size_t i;
   
   for (i = 0; i < n; i++)
   {
      printf ("%d ", p[i]);
   }
   printf ("\n" );
}
 
int main (void)
{
   int a[] = {2, 4, 7, 6, 1, 5, 8, 4};
 
   qsort (a, sizeof a / sizeof *a, sizeof *a, compare);
 
   print (a, sizeof a / sizeof *a);
 
   (getchar)();
 
   return 0;
}


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed