Salut j'ai un problème pour faire en sorte que l'utilisateur de mon code puisse reprendre l'expérience auutant de fois qu'il veut. ci join mon programme, et j(espère avoir de l'aide!!!😊
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int nombre_entre, nombre_mystere, continuer_partie=1, i=0;
const int MAX=100, MIN=1;
printf("=== PLUS OU MOINS ===\n\n");
printf("Vous devez deviner le nombre choisi par l'ordinateur qui est compris entre 1 et 100 \n");
srand(time(NULL));
nombre_mystere=(rand()%(MAX-MIN+1))+MIN;
do{
while(nombre_entre!=nombre_mystere)
{ i++;
printf("\nEntrez le nombre de votre choix\n");
scanf("%d", & nombre_entre);
if(nombre_entre<nombre_mystere)
printf("C'est plus\n");
else if(nombre_entre>nombre_mystere)
printf("C'est moins\n");
else
printf("Bravo, vous avez trouve le nombre mystere en %d nombres de coups\n", i);
}
printf("\nVOulez-vous rejouer?\n");
printf("Oui(1) - Non(0) : ");
scanf("%d", & continuer_partie);
} while(continuer_partie!=0);
return 0;
}
Tu as trouvé le nombre_mystère, et tu veux rejouer. Jusque là tout va bien. Mais tu passes ensuite ligne 14, et nombre_entre vaut toujours nombre_mystère, puisque celui-ci n'a pas été changé. Donc tu n'entres pas dans le while, et le programme te repose la question "voulez-vous...", etc, etc, etc
Je ne te donne pas la solution, à toi de faire.
Edit: l'indentation laisse à désirer.
- Edité par edgarjacobs 13 novembre 2022 à 23:27:20
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Merci beaucoup j'ai réussi à régler le problème voici le nouveau programme, même si grand-chose n'a pas changé😁
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int nombre_entre, nombre_mystere, continuer_partie=1, i=0;
const int MAX=100, MIN=1;
printf("=== PLUS OU MOINS ===\n\n");
printf("Vous devez deviner le nombre choisi par l'ordinateur qui est compris entre 1 et 100 \n");
srand(time(NULL));
nombre_mystere=(rand()%(MAX-MIN+1))+MIN;
do{
while(nombre_entre!=nombre_mystere)
{ i++;
printf("\nEntrez le nombre de votre choix\n");
scanf("%d", & nombre_entre);
if(nombre_entre<nombre_mystere)
printf("C'est plus\n");
else if(nombre_entre>nombre_mystere)
printf("C'est moins\n");
else
printf("Bravo, vous avez trouve le nombre mystere en %d nombres de coups\n", i);
}
printf("\nVOulez-vous rejouer?\n");
printf("Oui(1) - Non(0) : ");
scanf("%d", & continuer_partie);
nombre_entre=0;
} while(continuer_partie!=0);
return 0;
}
Ce n'est pas le bon plan (même si mettre nombre_entre à zéro est une bonne idée). Le nombre mystère à trouver sera toujours le même. Et tu oublies de remettre le nombre d'essais à zéro. Courage, tu y es presque.
Edit: une idéed'indentation qui montre bien les blocs
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int nombre_entre, nombre_mystere, continuer_partie=1, i=0;
const int MAX=100, MIN=1;
printf("=== PLUS OU MOINS ===\n\n");
printf("Vous devez deviner le nombre choisi par l'ordinateur qui est compris entre 1 et 100 \n");
srand(time(NULL));
nombre_mystere=(rand()%(MAX-MIN+1))+MIN;
do {
while(nombre_entre!=nombre_mystere) {
i++;
printf("\nEntrez le nombre de votre choix\n");
scanf("%d", & nombre_entre);
if(nombre_entre<nombre_mystere)
printf("C'est plus\n");
else if(nombre_entre>nombre_mystere)
printf("C'est moins\n");
else
printf("Bravo, vous avez trouve le nombre mystere en %d nombres de coups\n", i);
}
printf("\nVOulez-vous rejouer?\n(Oui(1) - Non(0) : ");
scanf("%d", &continuer_partie);
nombre_entre=0;
} while(continuer_partie!=0);
return 0;
}
- Edité par edgarjacobs 14 novembre 2022 à 0:27:10
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Bon j'ai essayé ça et je crois que ca marche veuillez voir s'il vous plaît
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int nombre_entre, nombre_mystere, continuer_partie=1, i=0;
const int MAX=100, MIN=1;
printf("=== PLUS OU MOINS ===\n\n");
printf("Vous devez deviner le nombre choisi par l'ordinateur qui est compris entre 1 et 100 \n");
do{
srand(time(NULL));
nombre_mystere=(rand()%(MAX-MIN+1))+MIN;
{
while(nombre_entre!=nombre_mystere)
{ i++;
printf("\nEntrez le nombre de votre choix\n");
scanf("%d", & nombre_entre);
if(nombre_entre<nombre_mystere)
printf("C'est plus\n");
else if(nombre_entre>nombre_mystere)
printf("C'est moins\n");
else
printf("Bravo, vous avez trouve le nombre mystere en %d nombres de coups\n", i);
}
printf("\nVOulez-vous rejouer?\n");
printf("Oui(1) - Non(0) : ");
scanf("%d", & continuer_partie);
nombre_entre=0 , i=0;
}
}while(continuer_partie!=0);
return 0;
}
> Bon j'ai essayé ça et je crois que ca marche veuillez voir s'il vous plaît Tu crois après un seul essai ou plusieurs?
Pour faire des tests, tu pourrais afficher le nombre mystère juste après l'avoir calculé. Tu pourrais volontairement donner ou éviter cette valeur.
srand() doit être appelé une seule fois au début du programme avant la boucle. Ça ne sert à rien de redéfinir la semence. Je mettrais nombre_entre à 0 avant le while. En fait, je ferais ici aussi un do ... while Tu pourrais choisir un nom plus significatif pour la variable qui compte les coups. Je la mettrais à 0 avant le while et je l'incrémenterais juste après le scanf pour montrer que c'est lié. Il vaut mieux initialiser les variables avant la boucle plutôt qu'à la fin. Tu as une { juste avant le premier while qui est jumelé avec une } juste avant le while de la fin. Elles sont inutiles.
- Edité par PierrotLeFou 14 novembre 2022 à 2:10:48
Le Tout est souvent plus grand que la somme de ses parties.
plus ou mois
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Le Tout est souvent plus grand que la somme de ses parties.