Question en c

aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -
bonsoir dans ce programme je veux afficher juste les verbes qui sont dans le tableau, mais quand je fais entrer un verbe qui se termine en 're' il le programme le conjugue je sais pas où est ma faute .
Merci d'avance.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char tab1[5]={'vendre','perdre','coudre','descendre','attendre'};
char verbe[20];
int i,s;



int main()
{
printf("Donner moi un verbe\n");
scanf("%s",verbe);
s=0;
for (i=0;i<=5;i++){
if (tab1[i]==verbe[strlen(verbe)]){
s++; }
}
if (s>0){
verbe[strlen(verbe)-3]='\0';
printf("je %sds\n",verbe);
printf("tu %sds\n",verbe);
printf("il/elle %sd\n",verbe);
printf("nous %sdons\n",verbe);
printf("vous %sdez\n",verbe);
printf("ils/elles %sdent\n",verbe);

}

else if (s==0){
printf("non");}


return 0;
}>

1 réponse

Franck7511 Messages postés 14296 Date d'inscription   Statut Membre Dernière intervention   1 121
 
1/ Je t'ai déjà dit que tu faisais un mauvais usage des variables globales...

2/ L'idée sous-jacente n'est pas bonne : les verbes que tu as choisi marchent, mais joindre, peindre, etc. ça ne marche même plus...

3/ char tab1[5]={'vendre','perdre','coudre','descendre','attendre'};
=> c'est faux, regarde ce que tu déclares. Et les chaînes c'est entre guillemets.

4/ Ça fait quoi ça ?
s=0;
for (i=0;i<=5;i++){
if (tab1[i]==verbe[strlen(verbe)]){
s++; }
}

PS : Comme dit sur l'autre topic, le problème est (bien) plus dur que tu ne le penses à cause des verbes irréguliers.
0
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
il compare le verbe entrant est ce qu'il existe dans la liste de tab1
0
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
si je veux juste vérifier le verbe entrant avec les verbes de Tab1 j'utilise quoi ?
0
Franck7511 Messages postés 14296 Date d'inscription   Statut Membre Dernière intervention   1 121
 
Non tu n'as pas bien réfléchi à l'implémentation.

Réfléchis déjà au point 3.

Ensuite, il y a une fonction toute faite pour la comparaison de deux chaînes, l'opérateur == comparera seulement les adresses des deux chaînes.

Exemple :

char str1 [10] = "chaine"
char str2 [10] = "chaine"

Mais str1 == str2 est faux.
0
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
pour ta 3ème remarque c'est un tableau que je déclare
0
Franck7511 Messages postés 14296 Date d'inscription   Statut Membre Dernière intervention   1 121
 
Un tableau de quoi ?
0