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

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
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
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