Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme TP1 du C

Sujet résolu
    22 décembre 2005 à 11:16:10

    Salut voila mon petit souci est au niveau du tp du cours C++ il ya une erreur et je ne vois pas ce que c'est :

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    int main ( int argc, char** argv )
    {
        long nombreMystere = 0, nombreEntre = 0;
        const long MAX = 100, MIN = 1;

        // Génération du nombre aléatoire

        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
       
        printf("Quel est le nombre ? ");
        scanf("%ld", &nombre1);
     
         switch (nombre)
    {
    case nombre1 == nombreMystere:
      printf("Bravo !! \n");
      break;
    case nombre1 < nombreMystere:
      printf("Non le nombre Mystere est plus grand \n");
      break;
    case nombre1 > nombreMystere:
      printf("Non le nombre Mystere est plus petit \n");
      break;
    default:
      printf("Je n'ai aucune phrase de prete pour cette reponse\n");
    }
      system("PAUSE");     
      return 0;
    }

    J'ai choisi le swich mais c'est peut-etre une erreur de ma pat j'ai vu que sur la correction m@teo a choisi aute chose. Merci d'avance pour vos réponses ;)
    • Partager sur Facebook
    • Partager sur Twitter
      22 décembre 2005 à 11:21:06

      Ton problème est simple au début tu défini nombreEntre
      mais dans le code tu met nombre1
      (le scanf et le switch)
      et m@teo n'a pas mis la seule solution j'en ai trouvée une sas rien de plus avec des **************** et des ************** ou encore des *****
      je vais quand meme pas vous donner la reponse :)
      • Partager sur Facebook
      • Partager sur Twitter
      Engineer in Training please wait fr social life ---- Vist www.charybde.be
        22 décembre 2005 à 11:22:07

        Bin justement ici, cela ressemble à rien,

        Tu à mit des condition dans les case...

        Alors cela donneras

        case : 1
        case : 0
        case : 0

        Donc c'est un peu débile :)

        Choisit avec if ... else if ... else

        Moi personnellement une petite heure et tout les aspect était fait :)
        • Partager sur Facebook
        • Partager sur Twitter
          22 décembre 2005 à 11:29:13

          sa m'a prut 10 min les doigt dans le nez (enfin facons de arler sinon comment je tape)
          et pk t'as dit if et else
          il faurt pas tout dévoiler
          • Partager sur Facebook
          • Partager sur Twitter
          Engineer in Training please wait fr social life ---- Vist www.charybde.be
            22 décembre 2005 à 11:33:33

            bon j'ai adopté la methode avec do mais il ya une erreur et d'apres l'erreur ca viens du scanf("%ld", &nombre1); :

            #include <stdio.h>
            #include <stdlib.h>
            #include <time.h>


            int main ( int argc, char** argv )
            {
                long nombreMystere = 0, nombreEntre = 0;
                const long MAX = 100, MIN = 1;

                // Génération du nombre aléatoire

                srand(time(NULL));
                nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

                /* La boucle du programme. Elle se répète tant que l'utilisateur
                n'a pas trouvé le nombre mystère */

             
                 do
            {
                 printf("Quel est le nombre ? ");
                 scanf("%ld", &nombre1);
               
                 if (nombreMystere == nombre1)
                 printf ("Bravo a toi !");
                 else if (nombreMystere < nombre1)
                 printf ("Le nombre est plus petit try again \n");
                 else (nombreMystere > nombre1)
                 printf ("Le nombre mystere est plus grand try again \n");

            }
                 
              system("PAUSE");     
              return 0;
            }

            Merci
            • Partager sur Facebook
            • Partager sur Twitter
              22 décembre 2005 à 11:49:00

              Citation : gimli

              et pk t'as dit if et else
              il faurt pas tout dévoiler



              Bin parce que personnelement ca à été inné, et je pensais que ça l'était pour tout le monde ^^

              Et puis moi meme en sachant ça, j'ai un peu corser le tout :D

              #include <stdio.h>
              #include <stdlib.h>
              #include <time.h>

              int main (int argc, char *argv[]) {
                  int new_game = 1;
                  int win = 0;
                  int vie = 0;
                  int difficult = 0;
                  int max_nbr = 100;
                  int min_nbr = 1;
                  int nbr_entre = 0;
                  int nbr_hazard = 0;
                  int pas_une_lettre = 0;
                  char temp[20];
                  char saisie[20];
                  char again;
                  long max = 0;
                  long min = 0;
                 
                  do {       
                      system("CLS");
                      printf("------------------------------\n");
                      printf("|   Plus ou Moin by dib258   |\n");
                      printf("------------------------------\n\n");
                      printf("Bienvenue dans le jeux plus ou moins,\n\n");
                     
                      min_nbr = 1;
                      nbr_entre = 0;
                      win = 0;
                     
                      do {
                          printf("Niveau de difficulte : \n\n  1. Facile (1 & 100) 10 vies\n  2. Moyen (1 & 100) 5 vies\n  3. Kamikaz' (1 & 1000) 10 vies\n\n");
                          fflush(stdout);
                          fgets(saisie, sizeof saisie, stdin);
                          pas_une_lettre = sscanf(saisie, "%[0-9]s", temp);
                          sscanf(saisie, "%d", &difficult);
                          if (difficult <= 3 && difficult > 0) {
                             if (difficult == 1) {
                                vie = 10;
                                max = 100;
                                max_nbr = 100;
                                min = 1;
                             } else if(difficult == 2) {
                                vie = 5;
                                max = 100;
                                max_nbr = 100;
                                min = 1;
                             } else if(difficult == 3) {
                                vie = 10;
                                max = 1000;
                                max_nbr = 1000;
                                min = 1;
                             } else {
                               pas_une_lettre = 0;       
                             }
                          } else {
                             pas_une_lettre = 0;
                          }
                      } while (pas_une_lettre != 1);
                     
                      srand(time(NULL));
                      nbr_hazard = (rand() % (max - min + 1)) + min;
                     
                      do {
                         do {
                            printf("\n%d vie(s) -> Chiffre entre %d et %d : ", vie, min_nbr, max_nbr);
                            fflush(stdout);   
                            fgets(saisie, sizeof saisie, stdin);
                            pas_une_lettre = sscanf(saisie, "%[0-9]s", temp);
                            sscanf(saisie, "%d", &nbr_entre);
                            if (nbr_entre > 100 && nbr_entre < 0) {
                               pas_une_lettre = 0;
                            }
                         } while (pas_une_lettre != 1);
                         if (nbr_entre > nbr_hazard) {
                            printf("\nLe nombre entre est trop grand !\n");   
                            if (nbr_entre < max_nbr) {
                               max_nbr = nbr_entre;
                            }
                         } else if (nbr_entre < nbr_hazard) {
                            printf("\nLe nombre entre est trop petit !\n");                     
                            if (nbr_entre > min_nbr) {
                               min_nbr = nbr_entre;
                            }
                         } else if (nbr_entre == nbr_hazard) {
                            win = 1;
                            printf("\nBravo, le nombre etait bien : %d !\n", nbr_hazard);   
                         } else {
                            printf("un problème s'est produit !");
                         }
                         if (vie <= 1) {
                            printf("\nDommage, le chiffre etait %d", nbr_hazard);
                            break;       
                         } else {
                            vie--;
                         }
                      } while (!win);
                      printf("\nVoulez vous rejouez ? (o/n) ");
                      fflush(stdout);
                      again = getchar();
                      if (again == 'o') {
                         new_game = 1;                   
                      } else {
                         new_game = 0;   
                      }
                  } while(new_game);
                  return 0;
              }
              • Partager sur Facebook
              • Partager sur Twitter
                22 décembre 2005 à 13:09:02

                c assé compliquer ton codze
                • Partager sur Facebook
                • Partager sur Twitter
                Engineer in Training please wait fr social life ---- Vist www.charybde.be
                  22 décembre 2005 à 13:17:59

                  Bah mit à part le filtrage à la place des scanf();

                  tout est dans les cours, donc :lol:

                  Et puis il y a beaucoup de code, c'est pour une plus grand confortabilité du point de vue de la console :) (spour fèr joli koi)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Probleme TP1 du C

                  × 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