Un exercice en c

Bonjour
J'ai un exercice et j'arrive pas a le resoudre est ce que vous pouvez m'aider?
On se propose d'écrire un programme en C permettant à l'utilisateur de créer son propre
dictionnaire de la manière suivante:
· L'utilisateur donne le nombre de mot à saisir
· L'insertion de chaque nouveau mot se fait de manière qu'il soit placé selon l'ordre
alphabétique
· On ne doit pas accepter l'existence du même mot plus qu'une seule fois
· A la fin, il faut afficher le dictionnaire obtenu

2 réponses

  1. Il faudra je pense te pencher vers des conteneurs plus avancés que de simples tableaux.
    https://openclassrooms.com/fr/courses
    Tu pourra implémenter tes fonctions de tris et les manipuler beaucoup plus facilement.
    1
    1. Tu n'a pas la moindre idée par ou commencé ? Pas de bout de code de commencé ?
      Il s'agit d'un exercice il faut que tu nous disent réellement ou tu bloque.
      Connais tu déjà la fonction qui permet à l'utilisateur de saisir un mot?
      Sais tu afficher ce mot à l'écran ? Puis de le placer dans un tableau ?
      0
      1. Voici le début du programme reste a classer les mot dans le tableau !

        #include <iostream>
        #include <stdio.h>
        #include <stdlib.h>
        #include <string.h>
        
        using namespace std;
        
        
        void viderBuffer()
        {
            int c = 0;
            while (c != '\n' && c != EOF)
            {
                c = getchar();
            }
        }
        
        int lire(char *chaine, int longueur)
        {
            char *positionEntree = NULL;
        
            if (fgets(chaine, longueur, stdin) != NULL)
            {
                positionEntree = strchr(chaine, '\n');
                if (positionEntree != NULL)
                {
                    *positionEntree = '\0';
                }
                else
                {
                    viderBuffer();
                }
                return 1;
            }
            else
            {
                viderBuffer();
                return 0;
            }
        }
        
        int main()
        {
            int NombreDeMotASaisir = 0;
            int i=0;
            int y=0;
            char mot[40];
            int test=0;
        
        
            printf("Combien de mot voulez vous saisir ? ");
            scanf("%d", &NombreDeMotASaisir);
            viderBuffer();
            if (NombreDeMotASaisir > 0)
            {
        
                char dico[NombreDeMotASaisir][40];
                int MotPresent=0;
        
                for (i = 0 ; i < NombreDeMotASaisir ; i++)
                {
                        printf("Saisir le mot a ajouter dans le dictionnaire: ");
                        lire(mot, 40);
                        printf("Le mot a ajouter est %s !\n\n", mot);
                            for (y = 0 ; y < i ; y++)
                            {
                                printf ("%s \n\n", dico[y]);
                                test=(strcmp(dico[y],mot));
                                //printf ("test=%i", test);
                                if (test==0)
                                {
                                    printf("Ce mot existe deja dans le dico! \n\n");
                                    MotPresent=1;
                                    return 2;
                                }
        
                            }
                        if (MotPresent==0)
                        {
                            strcpy (dico[i], mot);
                            printf("Le mot ajoute est %s \n\n", dico[i]);
                        }
        
                }
        
            for (i = 0 ; i < NombreDeMotASaisir ; i++)
            {
                printf("Le %i mot du dico est %s \n", i, dico[i]);
            }
        
            }
        
        
        return 0;
        
        }
        
        0