Programmation du jeu du devin en C (problème)
Résolu/Fermé
A voir également:
- Programmation du jeu du devin en C (problème)
- 94 jeu - Télécharger - Puzzle & Réflexion
- Jeu du pendu - Télécharger - Vie quotidienne
- Jeu zuma - Télécharger - Jeux vidéo
- Application de programmation - Guide
3 réponses
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
1 mars 2013 à 16:53
1 mars 2013 à 16:53
Bonjour,
normal qu'il t'affiche plusieurs fois la même proposition : tu fais une boucle sur i, et tu cherches à afficher tab[n]. donc quelle que soit la valeur de i, tu prends toujours le même indice dans le tableau.
Remplace tab[n] par tab[i].
Cordialement.
normal qu'il t'affiche plusieurs fois la même proposition : tu fais une boucle sur i, et tu cherches à afficher tab[n]. donc quelle que soit la valeur de i, tu prends toujours le même indice dans le tableau.
Remplace tab[n] par tab[i].
Cordialement.
Utilisateur anonyme
1 mars 2013 à 16:58
1 mars 2013 à 16:58
Bonjour chossette9, merci de ta réponse, le problème c'est que i correspond au nombre d'essai restants et tab[n] correspond a ma proposition.
Quand je compile en faisant tab[i], le programme m'écrit nimporte quoi..
Quand je compile en faisant tab[i], le programme m'écrit nimporte quoi..
Utilisateur anonyme
1 mars 2013 à 17:05
1 mars 2013 à 17:05
Bien sûr puisque tu mets toujours ton résultat dans tab[n] et que ton n reste toujours égal à 1.
regarde ta boucle
De plus, lors de l'affichage, l'initialisation de for est encore plus fantaisiste :
regarde ta boucle
for(n=1;n<=1;n++)
De plus, lors de l'affichage, l'initialisation de for est encore plus fantaisiste :
for(i>0;i<=10;i++)
Ba en faite j'ai fais la boucle for(n=1;n<=1;n++) pour qu'à chaque coup on ne puisse taper qu'une seule proposition, par exemple si je fais for(n=1;n<=10;n++), pour chaque coup j'aurai droit à 10 propositions.
Ensuite j'ai fait la boucle for(i>0;i<=10;i++) pour que mon tableau affiche mes propositions en fonctions du nombre de coups effectués, par exemple si j'ai trouvé le bon chiffre en 5 coups, je ne veux pas que le programme m'affiche par exemple 10 propositions mais 5 propositions.
Ensuite j'ai fait la boucle for(i>0;i<=10;i++) pour que mon tableau affiche mes propositions en fonctions du nombre de coups effectués, par exemple si j'ai trouvé le bon chiffre en 5 coups, je ne veux pas que le programme m'affiche par exemple 10 propositions mais 5 propositions.
Pourquoi mettre une boucle si tu ne veux pas boucler ? La boucle sert à recommencer un traitement plusieurs fois : si on ne veut le faire qu'une fois, c'est complètement inutile d'en mettre une !
Mais même si tu laisses cette boucle, tu es bien d'accord que n vaut toujours 1 ? Donc quand tu fais scanf("%d",&tab[n]); , tu lis toujours la valeur dans tab[1]. Pas la peine d'avoir un tableau si c'est pour toujours mettre dans la même case du tableau ! . En fait, c'est le 'n' qui ne colle pas, tu devrais avoir tab[i].
Deuxième point : ton affichage . Quand tu écris for(i>0;i<=10;i++), le i>0 est supposé initialiser i. Mais i>0, c'est une comparaison, ça n'initialise rien du tout !. D'ailleurs, comme tu as rempli ton tableau par indices décroissants, tu devrais aussi l'afficher par indices décroissants.
Mais même si tu laisses cette boucle, tu es bien d'accord que n vaut toujours 1 ? Donc quand tu fais scanf("%d",&tab[n]); , tu lis toujours la valeur dans tab[1]. Pas la peine d'avoir un tableau si c'est pour toujours mettre dans la même case du tableau ! . En fait, c'est le 'n' qui ne colle pas, tu devrais avoir tab[i].
Deuxième point : ton affichage . Quand tu écris for(i>0;i<=10;i++), le i>0 est supposé initialiser i. Mais i>0, c'est une comparaison, ça n'initialise rien du tout !. D'ailleurs, comme tu as rempli ton tableau par indices décroissants, tu devrais aussi l'afficher par indices décroissants.