Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème après l'exécution

Un message d'erreur de Windows apparait, je cheche mon problème...

Sujet résolu
    19 mars 2006 à 23:48:18

    Bonjour! :p
    J'ai un problème avec mon logiciel. C'est un jeu simple fait avec le premier chapitre (ou le deuxième? je ne sais pas... qu'importe) du superbe tutoriel sur les C et le C++.
    Je vais tout d'abord vous montrer mon code, ensuite le message d'erreur, ça marche? Ensuite, vous verrez si vous savez la solution. ;)
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    int main(int argc, char *argv[])
    {
      long chiffre=0, entre=0, nbdecoups=0, niveau, MAX=0, MIN=1;

     
              do
              { 
                printf("Choisis un niveau de difficulte\n1 : 1 a 10\n2 : 1 a 100\n3 : 1 a 1000\n" );
                scanf("%ld", niveau);
                printf("\n\n");
               
                if (niveau = 1)
                  MAX +=10;
                else if (niveau = 2)
                  MAX +=100;
                else if (niveau = 3)
                  MAX +=1000;
                else if (niveau > 3)
                  printf("Hmm... ce niveau n'existe pas!");
              } while (niveau > 3);
             
      srand(time(NULL));
      chiffre = (rand() % (MAX - MIN + 1)) + MIN;
               
               do
              {
                        printf("Quel est le chiffre auquel je pense? C'est entre 1 et 100! ");
                        scanf("%ld", &entre);
                        nbdecoups++;
                        printf("\n");
                       
                        if (entre > chiffre)
                           printf("Plus petit! Voyons! Quel sot...\n\n");
                        else if (entre < chiffre)
                           printf("Plus grand! Voyons! Quel sot...\n\n");
                        else
                            printf("Tu y est... enfin... apres %ld coups!\n\n", nbdecoups);
              }         while (chiffre != entre);
      printf("\n");
     
      system("PAUSE");     
      return 0;
    }


    Lorsque que je l'éxécute, il n'y a aucune erreur. Ensuite, j'appuie sur "1" pour avoir le niveau "1", et je fais la touche "Entrer".
    Et le problème apparait ici : Image utilisateur

    Que dois-je faire?

    Merci d'avance!
    • Partager sur Facebook
    • Partager sur Twitter
      20 mars 2006 à 0:06:15

      Citation : Marovo



        long chiffre=0, entre=0, nbdecoups=0, niveau, MAX=0, MIN=1;
                  scanf("%ld", niveau);



      Comportement indéfini. scanf() avec "%ld" attend l'adresse d'un long. Tu lui donnes une valeur de long indéfinie. Il manque un &.

      • Partager sur Facebook
      • Partager sur Twitter
      Music only !
        20 mars 2006 à 0:28:29

        Merci, ça fonctionne!
        Tu es très futé, je trouve, je n'y aurait complètement pas pensé! En fait, j'avais oublié...

        • Partager sur Facebook
        • Partager sur Twitter

        Problème après l'exécution

        × 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