Verbe premier groupe au futur

Résolu/Fermé
OUmar DIAW - Modifié par jipicy le 13/04/2014 à 11:16
 OUmar DIAW - 14 avril 2014 à 11:58
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
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 avril 2014 à 11:12
Pour les prochaines fois, merci d'éviter de créer plusieurs fois un post.
Il aurait fallu continuer ici : https://forums.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,
0
merci
0