IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

toutes les permutations possibles d'un mot..


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut toutes les permutations possibles d'un mot..
    je veux définir une fonction qui permet de donner toutes les permutations possibles d'un mot , cette fonction a comme paramètre le mot qu'on veut permuter , ma question est comment définir cette fonction , est-ce que c'est comme ca qu'on peut définir une telle fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int permuter(char st[])
    {
       .................
       .................
       printf("Permutation ")    // après le code principale(qui en fait permute deux caractères  succesives du mot , cette procédure  nous donne n permutation ) on affiche les permutation à l'aide d'un boucle.....
     
         permuter(st);// Ç a commence avec la derniere permutation et à  l'aide d'un compteur qui décrit les entiers positifs jusqu'au factoriel du n (strlen(st)) , on peut afficher toute les permutation possibles ..(c.à.d d'une maniere récursive)
     
    return 0 ;
     
    }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Salut,

    Tout dépend de ce que tu veux faire.

    Si cette fonction affiche directement les résultats, c'est bon (si tu connais la taille de ta chaine avant chaque appel de ta fonction tu peux aussi passer en paramètre la taille de la chaine => ça t'évitera de faire un strlen par la suite.
    Si cette fonction doit te renvoyer un tableau contenant toutes les chaines possible,il y a plusieurs solutions.

    En, voici une :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int permuter(char str[], char *bufOut, unsigned int buffSizeOut, int *lenOut){
    // ...
    }
     
    // str (in): chaine à traiter
    // bufOut (in/out): pointe vers le buffer dont tu auras préalablement réservé l'espace mémoire avant l'appel de la fonction => contiendra toutes les chaines trouvées
    // buffSizeOut (in): taille de bufOut
    // lenOut (out): taille d'un élément qui est dans bufOut (ils auront forcement tous la même taille)
     
    // (in) : indique que c'est un élément que tu dois renseigner à la fonction
    // (out) : indique que la fonction retourne la valeur
    // => dans ton buffer de sortie (bufOut) tu pourras mettre tes chaines

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/01/2013, 11h32
  2. [XL-2010] Trouver toutes les combinaisons possibles de plusieurs mots
    Par Faneos dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2012, 19h17
  3. Procéder toutes les permutations possibles d'une liste
    Par supergrey dans le forum Mathématiques
    Réponses: 3
    Dernier message: 21/10/2011, 15h08
  4. Réponses: 3
    Dernier message: 25/08/2006, 11h55
  5. toutes les combinaisons possibles
    Par marocleverness dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 29/05/2006, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo