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 -
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;
}>
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
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.
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.
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.