Un exercice en c

Myriam d -  
 Utilisateur anonyme -
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. Utilisateur anonyme
     
    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
  2. Eldanor
     
    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. Eldanor
       
      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