Je suis un programmeur débutant en C ++ essayant de créer cette pratique Guess-the-Number Jeu à remplir certaines exigences. Ce sont:
Mais le problème actuellement est que lorsque je saisi un numéro, il me dit si le numéro entré est supérieur ou inférieur au numéro correct généré aléatoirement. Donc, si c'est plus bas, la sortie est «plus faible enlaulowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerlowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLowerLower Je ne sais pas ce que j'ai mal fait? P>
Voici mon code.
(X = nombre généré aléatoirement, y = devinez, z = # de suppositions) p>
5 Réponses :
1- La variable Z n'est pas initialisée
2-vous êtes censé lire l'entrée à chaque fois que vous êtes en boucle, je suppose (à lire la supposition)? Comme ceci p> Remarque: vous devez initialiser la graine aléatoire avant d'utiliser votre fonction aléatoire: p>
Mettez votre std :: Cin dans la boucle. Vous devez également définir z au début et l'ajouter par 1 chaque fois que la boucle fonctionne.
int main() {
srand (time(NULL));
int x , y, z;
x = rand() % 1000 + 1;
z = 0;
do{
std::cin>>y;
if (y > x){
std::cout<<"higher"<< std::endl;
} else if (y < x) {
std::cout<<"lower"<< std::endl;
} else if (y == x) {
std::cout<<"correct"<< std::endl;
}
} while (y != x && z++ < 9);
return 0;
}
Vous avez un comportement non défini: z code> est utilisé avant l'initialisation. p> p>
Vous faites mal quelques choses:
std :: COUT Quelque part. Li>
- Vous devez obtenir une entrée de l'utilisateur à l'intérieur du corps de la boucle. Li>
- Vous devez d'abord initialiser le générateur de nombres aléatoires avant de l'utiliser. Li>
- Vous devez initialiser la variable
z code> à 0, car vous avez un comportement non défini - vous incrémentez la variable qui a une valeur indéfinie (non initialisée précédemment). LI>
ul> Voici votre code avec ces correctifs: P>
#include <iostream>
#include <ctime>
int main() {
int x, y, z = 0;
srand(time(NULL));
x = rand() % 1000 + 1;
std::cout << x << std::endl;
do {
std::cin >> y;
if(y > x) {
std::cout << "higher" << std::endl;
z++;
} else if(y < x) {
std::cout << "lower" << std::endl;
z++;
} else {
std::cout << "correct" << std::endl;
}
std::cout << std::flush;
} while(y != x && z <= 10);
return 0;
}
Quelles sont vos attentes du code?