Pendu en C
Résolu/Fermé
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
-
4 févr. 2008 à 16:29
oupsman Messages postés 316 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 22 octobre 2008 - 4 févr. 2008 à 17:59
oupsman Messages postés 316 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 22 octobre 2008 - 4 févr. 2008 à 17:59
A voir également:
- Pendu en C
- Jeu du pendu - Télécharger - Vie quotidienne
- Télécharger jeu du pendu gratuit - Télécharger - Jeux vidéo
- Pendu en arabe - Forum C
- Pendu inscrit dans tkinter - Forum Python
17 réponses
cythonas
Messages postés
611
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
17 janvier 2012
84
4 févr. 2008 à 16:41
4 févr. 2008 à 16:41
for (i=0;i<=5;i++)
{
jconnai pas tres bien le C sa fait lontemp que j'en ai pas fait mais si tu met i++ sa veut dire qu'il increment i de +1 a chaque fois nan?
if(lettre=mot[i])
printf("la lettre est a la position %d\n" ,i); et la vu que ta variable c'est i en fait il prend chaque valeurs de i donc 1 2 3 4 donc il te met ta lettre partout kes ten dit??
en fait tu lui dit pour i compris entre 0 et 5 tu met la lettre sa tourne pas rond ton truc jcroi
{
jconnai pas tres bien le C sa fait lontemp que j'en ai pas fait mais si tu met i++ sa veut dire qu'il increment i de +1 a chaque fois nan?
if(lettre=mot[i])
printf("la lettre est a la position %d\n" ,i); et la vu que ta variable c'est i en fait il prend chaque valeurs de i donc 1 2 3 4 donc il te met ta lettre partout kes ten dit??
en fait tu lui dit pour i compris entre 0 et 5 tu met la lettre sa tourne pas rond ton truc jcroi
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
4 févr. 2008 à 16:48
4 févr. 2008 à 16:48
non,
au début du code j'introduis un mot de six lettres, ensuite je chiosi une lettre
et la compare avec le mot tapé.
C'est la que ça m'indique que la lettre se trouve partout dans le mot
sauf en position 0...
Et je ne comprend toujours pas pourquoi!!!
au début du code j'introduis un mot de six lettres, ensuite je chiosi une lettre
et la compare avec le mot tapé.
C'est la que ça m'indique que la lettre se trouve partout dans le mot
sauf en position 0...
Et je ne comprend toujours pas pourquoi!!!
cythonas
Messages postés
611
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
17 janvier 2012
84
4 févr. 2008 à 16:51
4 févr. 2008 à 16:51
ouais mais deja c pas normale que ta lettre se trouve partou si??
cythonas
Messages postés
611
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
17 janvier 2012
84
4 févr. 2008 à 16:52
4 févr. 2008 à 16:52
et il compte pas le 0 pasque de 0 a 5 sa fait 6 caractere jpense nan???essaye avec 6 a ton char mot
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
4 févr. 2008 à 16:55
4 févr. 2008 à 16:55
#define Tmax5
c'est défini pour 6 caractères vu qu'il y a le 0 qui compte non?
Donc tu n'as pas d'explications pourquoi ça plante?
c'est défini pour 6 caractères vu qu'il y a le 0 qui compte non?
Donc tu n'as pas d'explications pourquoi ça plante?
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
4 févr. 2008 à 16:58
4 févr. 2008 à 16:58
je voulais pas dire ça, mot [5] défini 6 caractères quand même non?
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
4 févr. 2008 à 17:01
4 févr. 2008 à 17:01
Salut limbergh,
Dans ta boucle for, dans if il faut mettre "==" et non "=".
== signifie un test.
= signifie affectation.
donc si tu corriges ton code, ça doit marcher.
CORRECTION :
....
...
for (i=0;i<=5;i++)
{
if(lettre==mot[i])
printf("la lettre est a la position %d\n" ,i);
else
printf("pas bon\n");
}
...
...
a+ ;-)
Dans ta boucle for, dans if il faut mettre "==" et non "=".
== signifie un test.
= signifie affectation.
donc si tu corriges ton code, ça doit marcher.
CORRECTION :
....
...
for (i=0;i<=5;i++)
{
if(lettre==mot[i])
printf("la lettre est a la position %d\n" ,i);
else
printf("pas bon\n");
}
...
...
a+ ;-)
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
4 févr. 2008 à 17:13
4 févr. 2008 à 17:13
Salut oupsman,
effectivement ça fonctionne mieux mais ce que je ne comprend pas c'est pourquoi
la première lettre du mot tapé n'est jamais reconnue par la lettre introduite...
Si tu as une explication à ça je suis preneur...
Merci d'avance
effectivement ça fonctionne mieux mais ce que je ne comprend pas c'est pourquoi
la première lettre du mot tapé n'est jamais reconnue par la lettre introduite...
Si tu as une explication à ça je suis preneur...
Merci d'avance
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
4 févr. 2008 à 17:29
4 févr. 2008 à 17:29
Voilà, je pense que mon code est plus lisible...
En fait quand j'introduis une lettre pour deviner le mot introduis avant, pex, le mot est "loulou", quand je vais sur la case 3
et que j'introduis un "l" il m'indique en position 0, 1, 2, pas bon, 3 bonne piosition et en 4 et 5 pas bon.
Pourquoi ça ne fonctionne pas pour la posiiton 0??????
Merci d'avance
Limbergh
En fait quand j'introduis une lettre pour deviner le mot introduis avant, pex, le mot est "loulou", quand je vais sur la case 3
et que j'introduis un "l" il m'indique en position 0, 1, 2, pas bon, 3 bonne piosition et en 4 et 5 pas bon.
Pourquoi ça ne fonctionne pas pour la posiiton 0??????
Merci d'avance
Limbergh
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
4 févr. 2008 à 17:30
4 févr. 2008 à 17:30
j'avais oublié le code....
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int choix, i; char mot[5]; char lc; do { printf("\n\n-1- choisissez un mot!!! : "); printf("\n-2- affichez le mot choisi!!! : "); printf("\n-3- tapez une lettre : "); printf("\n votre choix==============>"); scanf("%d", &choix); switch(choix) { case 1 : printf("introduisez un mot de 6 caracteres : "); scanf("%s", &mot); break; case 2 : printf("\n\nle mot choisi est : %s" , mot); break; case 3 : printf("\n introduisez une lettre : "); scanf("%s", &lc); for (i=0;i<=5;i++) { if (lc==mot[i]) printf("\n la lettre est a la position %d : ", i); else printf("\n pas bon"); } break; } }while(choix!=0); system("PAUSE"); return 0; }
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
4 févr. 2008 à 17:40
4 févr. 2008 à 17:40
rajoute un getchar(); apres scanf("%d", &choix); pour recupéré \n
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
4 févr. 2008 à 17:45
4 févr. 2008 à 17:45
essayes avec ça :
int main(void)
{
char mot[5];
char lettre;
int i;
scanf("%s", mot);
printf("tapez une lettre : ");
scanf(" %c",&lettre); /*ICI J'AI RAJOUTE UN ESPACE AVANT %c*/
/*et li tiens était aussi un %s que j'ai remplacé*/
for (i=0;i<5;i++)
{
if(lettre==mot[i])
printf("la lettre est a la position %d\n" ,i);
else
printf("pas bon\n");
}
system("PAUSE");
return 0;
}
normalement ça doit faire ce que tu voulais a + ;-)
int main(void)
{
char mot[5];
char lettre;
int i;
scanf("%s", mot);
printf("tapez une lettre : ");
scanf(" %c",&lettre); /*ICI J'AI RAJOUTE UN ESPACE AVANT %c*/
/*et li tiens était aussi un %s que j'ai remplacé*/
for (i=0;i<5;i++)
{
if(lettre==mot[i])
printf("la lettre est a la position %d\n" ,i);
else
printf("pas bon\n");
}
system("PAUSE");
return 0;
}
normalement ça doit faire ce que tu voulais a + ;-)
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
4 févr. 2008 à 17:46
4 févr. 2008 à 17:46
Salut mype,
j'ai fait ce quu tu m'as suggéré et mon problème persiste... De plus, je ne comprend pas
pourquoi il faut rajouter getchar();...
j'ai fait ce quu tu m'as suggéré et mon problème persiste... De plus, je ne comprend pas
pourquoi il faut rajouter getchar();...
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
4 févr. 2008 à 17:51
4 févr. 2008 à 17:51
Essayes mon post 12, c'est plus simple
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
>
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
4 févr. 2008 à 17:53
4 févr. 2008 à 17:53
et tiens moi au courant ;-)
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
4 févr. 2008 à 17:53
4 févr. 2008 à 17:53
la letre est un seul caractere donc tu remplace %s par %c là scanf("%c", &lc);
rajoute un autre getchar(); apres scanf("%c", &lc);
quand tu tape ton choix ou ta lettre apres tu appuies sur entree donc il te faut un getchar pour recupere le caractere \n qui correspond a la touche entree
essaye ça la ça devrait marché
rajoute un autre getchar(); apres scanf("%c", &lc);
quand tu tape ton choix ou ta lettre apres tu appuies sur entree donc il te faut un getchar pour recupere le caractere \n qui correspond a la touche entree
essaye ça la ça devrait marché
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int choix, i; char mot[5]; char lc; do { printf("\n\n-1- choisissez un mot!!! : "); printf("\n-2- affichez le mot choisi!!! : "); printf("\n-3- tapez une lettre : "); printf("\n votre choix==============>"); scanf("%d", &choix); getchar(); switch(choix) { case 1 : printf("introduisez un mot de 6 caracteres : "); scanf("%s", &mot); break; case 2 : printf("\n\nle mot choisi est : %s" , mot); break; case 3 : printf("\n introduisez une lettre : "); scanf("%c", &lc); getchar(); for (i=0;i<=5;i++) { if (lc==mot[i]) printf("\n la lettre est a la position %d : ", i); else printf("\n pas bon"); } break; } }while(choix!=0); system("PAUSE"); return 0; }
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
4 févr. 2008 à 17:54
4 févr. 2008 à 17:54
Merci pour vos réponses (oupsman et mype)...
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
4 févr. 2008 à 17:56
4 févr. 2008 à 17:56
de rien ;)
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
4 févr. 2008 à 17:59
4 févr. 2008 à 17:59
ravi d'avoir pu t'aider, a+ ;-)