Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plus ou moin probleme

probleme au compilage

    30 décembre 2005 à 10:53:58

    Bon j'ai pris le programme du tp de mateo21 je veux l'améliorer mais quand je compile ça affiche 62 redefinition of "MAX"

    Voici le code

    Citation : code

    /*

    Plus ou Moins
    -------------

    Realise par jhon117

    */


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


    int main ( int argc, char** argv )
    {
    long choixMenu;

    printf(" ===Veuillez choisir une dificulter===\n\n");
    printf(" 1. Facile de 0 a 100\n");
    printf(" 2. Dur de 0 a 500\n");

    scanf("%ld", &choixMenu);

    printf("\n");

    switch (choixMenu)
    {
    case 1:
    printf("Bienvenue dans plus ou moin\n\n");
    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
    {
    // On demande le nombre
    printf("Veuillez entrer un nombre.");
    scanf("%ld", &nombreEntre);

    // On compare le nombre entré avec le nombre mystère

    if (nombreMystere > nombreEntre)
    printf("Desoler ce n'est pas le bon nombre c'est plus !\n\n");
    else if (nombreMystere < nombreEntre)
    printf("Desoler ce n'est pas le bon nombre c'est moins !\n\n");
    else // Si le nombre n'est ni inférieur ni supérieur, c'est qu'il est égal, donc c'est bon !
    printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
    } while (nombreEntre != nombreMystere);
    break;
    case 2:
    printf("Bienvenue dans plus ou moin\n\n");
    long nombreMystere1 = 0, nombreEntre1 = 0;
    const long MAX = 500, MIN = 1;

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

    srand(time(NULL));
    nombreMystere1 = (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
    {
    // On demande le nombre
    printf("Veuillez entrer un nombre.");
    scanf("%ld", &nombreEntre);

    // On compare le nombre entré avec le nombre mystère

    if (nombreMystere1 > nombreEntre1)
    printf("Desoler ce n'est pas le bon nombre c'est plus !\n\n");
    else if (nombreMystere1 < nombreEntre1)
    printf("Desoler ce n'est pas le bon nombre c'est moins !\n\n");
    else // Si le nombre n'est ni inférieur ni supérieur, c'est qu'il est égal, donc c'est bon !
    printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
    } while (nombreEntre1 != nombreMystere1);
    break;
    default:
    printf(" Vous n'avez pas rentre un nombre correct.");
    break;
    }


    system("PAUSE");
    }



    Merci pour celui qui me dirais ou est le blem
    • Partager sur Facebook
    • Partager sur Twitter
      30 décembre 2005 à 10:58:25

      Yoop
      C'est normal, tu fais deux fois "const long MAX = xxx, MIN = xxx;"
      Pour le compilateur, tu définis deux fois MAX.
      Tu le définis une première fois : const long MIN, MAX;
      puis après tu lui affectes des valeurs : MIN = xxx;
      Voila bonne journée :p
      ps : on dit compilation et pas compilage :)
      • Partager sur Facebook
      • Partager sur Twitter
        30 décembre 2005 à 11:12:55

        Citation : N@shh

        Tu le définis une première fois : const long MIN, MAX;
        puis après tu lui affectes des valeurs : MIN = xxx;


        Attention, si tu dois modifier la variable plus tard, tu ne peux pas utiliser de constantes.
        Donc tu dois les déclarer comme ceci:
        long MIN, MAX;
        • Partager sur Facebook
        • Partager sur Twitter
          30 décembre 2005 à 12:22:55

          merci j'asaye est je vous dit si ca marche

          bonvoila j'edite maintenant je met juste

          Citation : code

          long MIN=0, MAX=500;



          est ca met

          Citation : mesage d'ereur

          conflicting type for "min"

          • Partager sur Facebook
          • Partager sur Twitter
            30 décembre 2005 à 15:52:29

            Tu dois enlever toutes les autres déclaration de MIN ou MAX. (comme long MIN, etc..)

            PS : Les noms en majuscule de variables sont reserver aux constantes, donc transforme les en minuscule
            • Partager sur Facebook
            • Partager sur Twitter
              31 décembre 2005 à 16:52:55

              oui mais le probleme ces que je ve deux nivo de dificulter un facile de 1 a100 est dur de 1 a 500 :(
              • Partager sur Facebook
              • Partager sur Twitter
                31 décembre 2005 à 17:30:11

                Il faut mettre:
                srand(time(NULL));
                nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;


                Au tout début du code, puis mettre:
                long MIN=0, MAX=500;

                (en changeant sa valeur comme tu le souhaite) là où tu veux !

                En gros, tu dois mettre qu'une fois le code qui génére un nombre aléatoire ;) voilà ton erreur!
                Have fun
                • Partager sur Facebook
                • Partager sur Twitter
                  1 janvier 2006 à 21:11:49

                  le blem ces que j'ai deja mis

                  Citation : code

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


                  :(
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 janvier 2006 à 23:14:13

                    Quand tu déclares
                    const long MAX = 500, MIN = 1;

                    Tu déclares des constantes alors que tu changes leurs valeurs selon ton "case".

                    En fait tu devrais les déclarer UNE SEULE FOIS et sans le "const" puisqu'elles vont varier selon le cas... au début de ta fonction :

                    long Max = 0, Min = 0;


                    puis dans tes "case" tu as juste à modifier leurs valeurs, donc sans mettre "long" devant. soit :
                    Max = 100;
                    Min = 1;

                    et
                    Max = 500;
                    Min = 1;


                    apres si çà marche toujours pas remet-nous ton code pour voir où il en est... ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 janvier 2006 à 18:48:24

                      va nous les kc longtemp ce progr ca met redefinition of min es mees d'ereur vla le programe

                      Citation : code c

                      /*

                      Plus ou Moins
                      -------------

                      Realise par jhon117

                      */


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


                      int main ( int argc, char** argv )
                      {
                      long choixMenu;

                      printf(" ===Veuillez choisir une dificulter===\n\n");
                      printf(" 1. Facile de 1 a 100\n");
                      printf(" 2. Dur de 1 a 500\n");

                      scanf("%ld", &choixMenu);

                      printf("\n");

                      switch (choixMenu)
                      {
                      case 1:
                      printf("Bienvenue dans plus ou moin\n\n");
                      long nombreMystere = 0, nombreEntre = 0;
                      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
                      {
                      // On demande le nombre
                      printf("Veuillez entrer un nombre.");
                      scanf("%ld", &nombreEntre);

                      // On compare le nombre entré avec le nombre mystère

                      if (nombreMystere > nombreEntre)
                      printf("Desoler ce n'est pas le bon nombre c'est plus !\n\n");
                      else if (nombreMystere < nombreEntre)
                      printf("Desoler ce n'est pas le bon nombre c'est moins !\n\n");
                      else // Si le nombre n'est ni inférieur ni supérieur, c'est qu'il est égal, donc c'est bon !
                      printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
                      } while (nombreEntre != nombreMystere);
                      break;
                      case 2:
                      printf("Bienvenue dans plus ou moin\n\n");
                      long nombreMystere1 = 0, nombreEntre1 = 0;
                      long MIN=1, MAX=500;

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

                      srand(time(NULL));
                      nombreMystere1 = (rand() % (MAX - MIN + 1)) + MIN;
                      Max = 500;
                      Min = 1;
                      /* La boucle du programme. Elle se répète tant que l'utilisateur
                      n'a pas trouvé le nombre mystère */

                      do
                      {
                      // On demande le nombre
                      printf("Veuillez entrer un nombre.");
                      scanf("%ld", &nombreEntre);

                      // On compare le nombre entré avec le nombre mystère

                      if (nombreMystere1 > nombreEntre1)
                      printf("Desoler ce n'est pas le bon nombre c'est plus !\n\n");
                      else if (nombreMystere1 < nombreEntre1)
                      printf("Desoler ce n'est pas le bon nombre c'est moins !\n\n");
                      else // Si le nombre n'est ni inférieur ni supérieur, c'est qu'il est égal, donc c'est bon !
                      printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
                      } while (nombreEntre1 != nombreMystere1);
                      break;
                      default:
                      printf(" Vous n'avez pas rentre un nombre correct.");
                      break;
                      }


                      system("PAUSE");
                      }

                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 janvier 2006 à 19:09:46

                        1_ parle mieux et moins vulgaire, s'il te plait :)
                        2_ les erreurs du compilo sont faites pour t'aider, et la c'est le cas.
                        Tu redéclare max et min plusieurs fois. Tu ne doit les déclarer qu'une fois, pas dix fois.
                        Et quand on code bien, on met les déclarations de variables au début de la fonction.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          6 janvier 2006 à 19:54:10

                          ouai mais mois ve les mettre 2 fois donc ya pas un moyen :(
                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 janvier 2006 à 20:47:52

                            En fait je pense que tu fais pas la différence entre "Déclaration" et "Affectation".

                            Donc la déclaration c'est tout simplement déclarer les variable en haut du bloc (dans ton cas main) par la syntaxe suivante

                            Type nomvariable;


                            ce qui donne dans ton cas

                            long max, min;


                            Mes variables sont en minuscule car ce ne sont pas des constantes(elles n'ont pas toujours la meme valeur)


                            Et ensuite tu as l'affectation qui est le fait de donner une valeur à la variable avec la syntaxe :


                            variable = Valeur;


                            En n'oubliant pas le ;

                            Si tu ne captes absolument rien de ce que j'ai dit(ce qui peut etre le cas) dit moi et je te repprendrais ton code avec ce que je viens de t'expliquer pour que tu puisses mieux comprendre ;)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              7 janvier 2006 à 20:53:19

                              ben ca serais sympa de tas par est si tu arive pas j'ai ptre une alternative le menu dans la fonction main case 1 du menu appele la fonction lvldificulter facile la case2 lvldificulter dur mais ces plus compliquer :(
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Plus ou moin probleme

                              × 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