Verbe premier groupe au futur [Résolu/Fermé]

Signaler
-
 OUmar DIAW -
Bonjour,
j'ai un probleme qu niveau de l'excecusion de mon programme qui consiste a conjugué le verbe donner par le user qu futur et qui se termine par ER sauf aller


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 main ()
 {
     char verbe[25];
  char ch[2];
  char *sujet[]={"je","tu","il/elle","nous","vous","ils/elles"};
  char *term[] ={"ai","as","a","ons","ez","ont"};
  printf("donner le verbe ");
  gets(verbe);
  strcat(ch,verbe[strlen(verbe)-2]);
  strcat(ch,verbe[strlen(verbe)-1]);
     if(strcmp(ch,"er")==0)
     {
      int i;
       for(i=0;i<6;i++)
        printf("%s %s %s\n",sujet[i],verbe,term[i]);
     }
     else if(strcmp(verbe,"aller"==0))
     {
      printf("aller n'est pas verbe du premier groupe");
     } 
     else
     printf("ce verbe n'est pas du premier groupe");
    getch();
 }

Merci de m'aider

2 réponses

Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 661
Pour les prochaines fois, merci d'éviter de créer plusieurs fois un post.
Il aurait fallu continuer ici : https://www.commentcamarche.net/forum/affich-30039633-conjugaison

main ()
Le bon prototype est : int main(void)
N'oublie pas le return 0; en fin de main().

gets(verbe);
A ne pas utiliser. Utilise plutôt fgets(). Ou plus simple dans ton cas : scanf("%24s",verbe);

strcat(ch,verbe[strlen(verbe)-2]);
strcat(ch,verbe[strlen(verbe)-1]);

Pour que strcat() fonctionne, il faut que la chaîne se termine par '\0', ce qui n'est pas le cas de ch. Donc, char ch[3]=""; à la création. Et non ch[2] comme tu l'as fait. Ou alors, utilise plutôt strcpy().
Et le 2ème strcat() est en trop. Sinon tu vas recopier la dernière lettre deux fois.

else if(strcmp(verbe,"aller"==0))
Attention au placement des parenthèses.

printf("aller n'est pas verbe du premier groupe");
N'oublie pas de mettre un '\n' en fin de ligne. Même remarque pour le dernier printf.

Et enfin, ton if est à revoir algorithmiquement parlant.
Le verbe "aller" tombera systématiquement dans le premier if car il se termine par "er". Il faudrait donc intervertir le contrôle du verbe "aller" avec le contrôle de verbe de premier groupe.

La prochaine fois, merci d'utiliser la balise "code" situé à droite du bouton "souligné" et choisis "C" dans la liste déroulante pour poster ton code. Sinon c'est illisible.

Cdlt,