Faire une boucle

Résolu/Fermé
zhopte Messages postés 64 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 17 août 2018 - Modifié par baladur13 le 7/12/2016 à 22:29
Whismeril Messages postés 19089 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 13 juillet 2024 - 7 déc. 2016 à 21:57
Bonsoir,
Je débute en c++, j'aimerais de l'aide,
L’ordinateur choisit un nombre aléatoire entre 0 et 999. Votre mission est de découvrir ce nombre en faisant à l’ordinateur des propositions auquel il répondra par :
 Trop petit.
 Gagné
 Trop grand
Vous devez trouver ce nombre en le minimum de coups possibles…
J'ai commencé :
#include <iostream>
#include "stdlib.h"
#include "time.h"
using namespace std;

int main()
{
    srand((unsigned)time(NULL));
    int a = 0;
    int z = 0;
    z = rand()%1000;
    cout << "entrer une valeur : " ; cin >> a ;

if (z == a)
    {
        cout << "GAGNER" << endl;
        system ("pause");
        return 0;
    }
    if (a<=z)
    {
        cout  << "trop petit"<< endl;
    }
    if (a>= z)
    {
        cout  << "trop grand"<< endl;
    }

return 0;
}


mais je ne sais pas comment faire pour que si c'est trop petit ou grand je recommence a entrer une valeur , je débute vraiment, j'aimerais comprendre pour mieux l'utiliser.
Merci de m'aider
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

3 réponses

Whismeril Messages postés 19089 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 13 juillet 2024 916
7 déc. 2016 à 19:56
Bonjour

Quels types de boucle connais tu?
zhopte Messages postés 64 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 17 août 2018
7 déc. 2016 à 20:07
for, while, do while
0
zhopte Messages postés 64 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 17 août 2018
7 déc. 2016 à 20:11
mais si je prend for il faut (instruction1;instruction2;instruction3) et pour while je pourrais le faire mais je crois pas que j'arriverais a mettre les 3 consignes.
0
Utilisateur anonyme
7 déc. 2016 à 20:54
Le for est utilisé pour réaliser une boucle d'incrémentation. ça veut dire, qu'elle va exécuter un code un nombre de fois prédéfini. Par exemple :
for(int i=0; i<MAXIMUM; i++){
    cout << i;
}

Affichera la valeur de i à partir de 0 (instruction 1), incrémentée de 1 à chaque tour (instruction 3) jusqu'à MAXIMUM (instruction 2). Si maximum vaut 3, cout affichera 0, 1, 2.

Le while est une boucle plus générale car elle permet d'exécuter une action tant qu'une condition n'est pas vérifié. Ainsi, tu peux mettre n'importe quelle condition dans un while.

Le do while est similaire au while mais il t'assure que tu effectueras l'action de la boucle une fois au moins ! Si la condition du while n'est pas vérifiée, les instructions ne seront réalisées qu'une seule fois.

Tu cherches à faire tout ton programme tant que l'utilisateur n'a pas trouvé la bonne réponse.
0
zhopte Messages postés 64 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 17 août 2018
7 déc. 2016 à 21:41
#include <iostream>
#include "stdlib.h"
#include "time.h"
using namespace std;

int main()
{
srand((unsigned)time(NULL));
char repon='o';
static int a;
static int z;
z = rand()%1000;
while(repon == 'o')
{
cout << "entrer une valeur : " ; cin >> a ;
if (a == z)
cout << "GAGNER" <<endl;
if (a<z)
{
cout << "trop petit" <<endl;
cout << "veux tu ressayer ? (o/n)" ; cin >> repon;
}
if (a> z)
{
cout << "trop grand" <<endl;
cout << "veux tu ressayer ? (o/n)" ; cin >> repon;
}
}
return 0;
}
Whismeril Messages postés 19089 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 13 juillet 2024 916
7 déc. 2016 à 21:57
Oui ou tu peux faire ta boucle tant que a!=z, pour ne pas avoir à poser la question de continuer.