Partage
  • Partager sur Facebook
  • Partager sur Twitter

plus ou mois

Sujet résolu
    12 novembre 2022 à 20:44:54

    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!!!😊

    • Partager sur Facebook
    • Partager sur Twitter
      12 novembre 2022 à 20:58:45

      Hello,

      Poste ton code comme ceci


      Les printscreen ne sont pas toujours facile à lire ni copiables pour les tester

      -
      Edité par edgarjacobs 12 novembre 2022 à 21:00:02

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        13 novembre 2022 à 23:02:59

        #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;
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          13 novembre 2022 à 23:23:33

          Re,-

          Le problème est assez simple.

          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

          • Partager sur Facebook
          • Partager sur Twitter

          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

            13 novembre 2022 à 23:58:44

            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;
            }
            



            • Partager sur Facebook
            • Partager sur Twitter
              14 novembre 2022 à 0:12:28

              Re Re,-

              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

              • Partager sur Facebook
              • Partager sur Twitter

              On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                14 novembre 2022 à 1:14:11

                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;
                }
                



                • Partager sur Facebook
                • Partager sur Twitter
                  14 novembre 2022 à 1:50:03

                  > 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

                  • Partager sur Facebook
                  • Partager sur Twitter

                  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.
                  • Editeur
                  • Markdown