|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Diandra Étudiant Inscription : février 2013 Messages : 3 ![]() |
Bonjour, j'ai fait un programme en langage C du jeu de devin, le but étant de deviner un nombre entre un nombre minimal (0) et un nombre maximal (choisit par l'utilisateur) et de dire si le nombre est plus grand ou plus petit à chaque fois, il marche correctement quand je l'exécute, le seul problème est que je souhaite enregistrer chaque nouvelle saisie de l'utilisateur dans une case d'un tableau puis afficher ce tableau. Je déclare donc un tableau mais lors de l'affichage toutes les cases du tableau ont le même nombre ou chiffre.
Voici mon programme : Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Pierre Ingénieur développement logiciels Inscription : juin 2007 Messages : 1 220 ![]() |
Bonjour à toi.
Tu autorise de faire autant de tentative que voulu, mais tu as un tableau de taille 10, ça ne peut pas marcher. Il faut soit interdire de faire plus de N tentatives, soit utiliser une liste chainée. J'ai de plus quelques conseils pratiques à te donner. préfère getc() à scanf() quand tu le peux. change ta fonction bienvenue pour qu'elle retourne le choix de l'utilisateur. elle remplira une seule fonction: obtenir cette information. ton main pourra alors utiliser la valeur de retour. Code :
Code :
for(int i=0;i<TAILLE;++i) printf("%3d ", tableau[i]);
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
|
||
|
10
|
|
|
#3 | ||||||
|
Membre éclairé
![]() ![]() Inscription : août 2007 Messages : 174 ![]() |
Bonjour,
Si tu veux mémoriser les saisies de l'utilisateur la boucle suivante pose problème : Code :
Code :
en début de boucle devrait suffire... à condition de retouner en début de boucle après chaque saisie, je m'explique : En utilisant seulement des if et jamais de else tu fais des tests sur n2 tout en changeant sa valeur ainsi tu ne contrôle pas par où "passe" ton programme Prenons un exemple : Pour commencer tu testes si "c'est plus grand", disons que c'est le cas donc tu fais changer la valeur de n2 par l'utilisateur disons qu'il tape un chiffre plus petit que la bonne valeur, ça tombe bien c'est justement ce qui est testé ensuite donc tu fais à nouveau changer la valeur de n2 par l'utilisateur, soyons fous, disons qu'il tape la bonne valeur, le test suivant te permettra de lui annoncer la bonne nouvelle, sauf qu'entre temps tu ne seras pas passé par le début ou la fin de ta boucle. Pour mémoriser la valeur de n2, il est beaucoup plus pratique de retourner en début de boucle mais c'est aussi plus "logique", dailleurs ces deux lignes : Code :
L'idée c'est : je mémorise la saisie si c'est le bon chiffre je l'annonce triomphalementsinon si c'est plus grand je dit que c'est plus grand sinon je dit que c'est plus petit je fais saisir un autre nombre à l'utilisateur |
||||||
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Diandra Étudiant Inscription : février 2013 Messages : 3 ![]() |
Merci pour vos réponses ! Je vais appliquer vos conseils et revenir vers vous si j'ai de nouveaux quelques soucis
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Diandra Étudiant Inscription : février 2013 Messages : 3 ![]() |
J'ai appliqué vos conseils mais le problème reste le même
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Pierre Ingénieur développement logiciels Inscription : juin 2007 Messages : 1 220 ![]() |
Montre nous donc comment tu as appliqués nos conseils, en nous montrant ton code.
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
|
|
00
|
Copyright © 2000-2013 - www.developpez.com