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 :

voici le code


Sujet :

C

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Par défaut voici le code
    j'aimerais avoir de l'aide à propos de ce code svp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    #define lgmax 26
    void conjugiason(char  verbe[])
    {
    //ce programme permet de conjuguer un verbe au present de l'indcatif
    char *adfin;
    char term[8];
    char deb[8];
    term[0]='e';
    term[1]='es';
    term[2]='e';
    term[3]='ons';
    term[4]='ez';
    term[5]='ent';
    term[7]='\0';
    deb[0]='je';
    deb[1]='tu';
    deb[2]='il';
    deb[3]='elle';
    deb[4]='nous';
    deb[5]='vous';
    deb[6]='ils';
    deb[6]='elles';
    deb[7]='\0';
    int i;
    do
    {
    adfin=verbe+strlen(verbe)-2;
    }
    while(strcmp(adfin,"er")==0);
     
    printf("present de l indicatif\n");
    for(i=0;i<7;i++)
    {
    printf("%s %s",deb[i],verbe);
    }
    }
    main()
    {
    char verbe[20];
    printf("donner un verbe\n");
    gets(verbe);
    conjugiason(verbe);
    getch();
    }

  2. #2
    Membre chevronné Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Par défaut
    Bonjour,

    Et c'est quoi le problème? Qu'est-ce que tu comprends, qu'est-ce que tu ne comprends pas?

  3. #3
    Membre expérimenté Avatar de quetzacoatl
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 168
    Par défaut
    Ca m'étonnerait grandement que ce code marche. Il est fait:
    char term[8];
    puis:
    term[1]='es';
    (par exemple)
    Or les opérateurs ' ' servent, à ma connaissance, à indiquer que l'on veut prendre la valeur du caractère ascii corresspondant. Or es n'est pas un caractere ascii, c'est donc impossible de faire ça normalement.
    es est une chaine de caractères, il ne faut donc pas déclarer un tableau de caractère mais un tableau à deux dimensions de caractères:
    Et après, peut-être est il possible de l'initialiser à la déclaration ou alors utiliser la fonction strcpy() de string.h pour copier une chaine de caracter dans une autre.
    Il ya d'ailleurs le même problème pour "deb".

  4. #4
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Citation Envoyé par chikoo Voir le message
    j'aimerais avoir de l'aide à propos de ce code svp:
    tu sembles confondre caractères et chaines de caractères, un caractère s'entoure de cotes (') et une chaine s'entoure de gillemets ("). Tu définis lgmax mais tu ne n'utilises pas. La fonction main doit toujours retourner un int. Le nombre d'éléments d'un tableau est égal à sa taille divisée par la taille d'un de ses éléments. Mon compilateur m'a sorti plein de messages d'erreurs, la première chose à faire est de les lire et d'essayer de les comprendre.

    Pour conjuguer à une personne donnée, il faut un sujet, un verbe à l'infinitif et une terminaison. Ces trois 'entités' sont des chaines de caractères. Les tableaux de sujets et de terminaisons à définir sont donc des tableaux de chaines et non pas des tableaux de caractères. Les sujets et les terminaisons ne changeront jamais, on peut donc les déclarer en constantes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include<stdio.h>
    #include<string.h>
     
    const char* sujet[] = {"je", "tu", "il", "elle", "on", "nous", "vous", "ils", "elles"};
    const char* terminaison[] = {"e", "es", "e", "e", "e", "ons", "ez", "ent", "ent"};
    #define NB_ELEMENTS (sizeof sujet / sizeof(char*))
     
    void conjugaison(char* verbe)
    {
        size_t index = 0;
        verbe[strlen(verbe) - 2] = '\0';
        while(index < NB_ELEMENTS)
        {
            printf("%s %s%s\n", sujet[index], verbe, terminaison[index]);
            index++;
        }
    }
     
    int main(void)
    {
        char verbe[256];
        printf("donner un verbe:");
        gets(verbe);
        conjugaison(verbe);
        return 0;
    }

Discussions similaires

  1. Suite modification du code par fring(voici 3 ans)
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/04/2013, 21h28
  2. [AC-2007] Voici la liste de tous les codes erreurs dans ACCESS 2007
    Par tibofo dans le forum Contribuez
    Réponses: 2
    Dernier message: 21/03/2013, 12h25
  3. Réponses: 0
    Dernier message: 22/08/2010, 14h52
  4. Voici du code: devinez l'algo
    Par camboui dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 21/07/2005, 11h39

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