Tri des chaines de caractére en c

Fermé
avenger10 Messages postés 2 Date d'inscription jeudi 28 février 2013 Statut Membre Dernière intervention 2 mars 2013 - 2 mars 2013 à 15:20
fiddy Messages postés 11067 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 8 mai 2013 à 14:19
Bonjour,


S.V.P vous pouvez m'aider pour ce probléme j'ai pas eu une solution juste un tout petit peu sans utiliser les fonctios

Ecrire un programme qui lit 10 mots et les mémorise dans un tableau de chaines de caractére.Trier les mots lexicographiquement en utilisant les fonctions strcmp et strcpy.

afficher le tableau trié.Utiliser la méthode de tri par séléction .
Sans utiliser les fonction !

2 réponses

Tasur Messages postés 2 Date d'inscription mardi 7 mai 2013 Statut Membre Dernière intervention 8 mai 2013 4
8 mai 2013 à 12:50
Je suis dans le meme cas :3
Voilà mon code :
    int taille = 10, i=0, j=0;
    char charon2[10]={0};
    char liste_mot[10][10]={"Theo", "Alex", "Jules", "Cindy", "Florian", "Juliette", "Elea", "Louis", "Victoria"};
    printf("Fonction 2\n");
    for(i=0; i<taille; i++)
    {
        for(j=0; j<taille; j++)
        {
            if(strcmp(liste_mot[i],liste_mot[j])<0)
            {
                strcpy(charon2, liste_mot[i]);
                strcpy(liste_mot[i], liste_mot[j]);
                strcpy(liste_mot[j], charon);
            }
        }
    }
    for(i=0; i<taille; i++)
    {
        printf("%s", liste_mot[i]);
    }
4
fiddy Messages postés 11067 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 812
Modifié par fiddy le 8/05/2013 à 14:20
C'est pas exactement le même cas puisque ce n'est pas l'utilisateur qui choisit ses variables... Donc la prochaine fois, nouveau post :-).

char liste_mot[10][10]={"Theo", "Alex", "Jules", "Cindy", "Florian", "Juliette", "Elea", "Louis", "Victoria"};
Pourquoi créer un tableau avec 10 lignes alors que tu n'as mis que 9 éléments ? Surtout si tu mets rien dedans, la case contiendra une valeur bidon. Donc le tri risque de foirer.

strcpy(liste_mot[j], charon);
C'est pas charon, mais charon2. A la compilation, ça doit se voir facilement...

De plus, au lieu de te contenter de dire que ça ne marche pas, tu pourrais nous dire qu'est-ce qui ne fonctionne pas ?
A La compilation ? Si oui, quelles sont les erreurs ?
A l'exécution ? Un peu de description.
0
fiddy Messages postés 11067 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 812
2 mars 2013 à 23:13
Bonjour,
strcmp(s1, s2) te permet de comparer deux chaînes.
Si la fonction retourne 0, s1 est égal à s2, si elle retourne un nombre > 0, s1 se situe après dans le dictionnaire sinon c'est s2.

strcpy() te permet de saisir les 10 mots dans ton dictionnaire et de déplacer les mots pour le tri.

Poste le début que tu as fait pour qu'on puisse t'aider (balise code). Et dis-nous ce que tu n'arrives pas à faire.
0