Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec le premier TP

Sujet résolu
    16 janvier 2006 à 19:04:06

    Bonjour (ou bonsoir ^^ )
    Voilà, je viens tout juste de me mettre à la programmation C. J'ai lu tout les cours fait par M@teo21 (très bien faits d'ailleurs ;) ) et je suis rendu au premier TP. J'ai réussi à faire fonctionner le "jeu de base" et il marche très bien. Ensuite j'ai réussi à mettre un petit compteur de coups qui, lui aussi, marche très bien. Maintenant je suis rendu à l'étape des niveaux de difficultés. Je me suis fait mon menu, il apparaît correctement à l'écran mais quand je choisi le niveau de difficulté, il me met une erreur et ma console se ferme (Plus ou moins.exe a rencontré un problème et doit fermer...). Je vous met le code :

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

    int main(int argc, char *argv[])
    {
        /*Ici, on place nos variables*/
        long MAX = 100;
        const int MIN = 1;
        long nombreMystere = 0, nombreEntre = 0, compteur = 0, niveau = 0;
       
        /*Ici, on choisi le niveau de difficulte*/
        printf("===Niveau de difficulte===\n\n");
        printf("1. 1 a 100\n");
        printf("2. 1 a 1000\n");
        printf("3. 1 a 10000\n");
        scanf("%ld",niveau);
        if(niveau == 1)
        {
             printf("***Niveau facile***");
             MAX = 100;
        }
        else if(niveau == 2)
        {
             printf("***Niveau moyen***");
             MAX = 1000;
        }
        else if(niveau == 3)
        {
             printf("***Niveau difficile***");
             MAX = 10000;
        }
        else
        {
             printf("Niveau inexsistant");
        }
             
             
        /*Génération du nombre aléatoire*/
        srand(time(NULL));
        nombreMystere =  (rand()%(MAX - MIN + 1)) + MIN;
       
        /*Ici, on commence la boucle*/
        do {                 
                          /*On entre le nombre et on augmente le compteur de un*/
                          printf("Entrez un nombre : ");
                          scanf("%ld",&nombreEntre);
                          compteur++;
                         
                          /*On regarde si le nombre est plus grand plus petit ou égale*/
                          if (nombreEntre < nombreMystere)
                          printf("Plus grand\n\n");
                          else if(nombreEntre > nombreMystere)
                          printf("Plus petit\n\n");
                          else
                          printf("Felicitation, vous avez trouve le bon nombre en %ld essais.\n\n",compteur);
                         
        } while(nombreEntre != nombreMystere);
       
     system("PAUSE");       
      return 0;
    }


    Voilà, si quelqu'un pouvait m'aider, ce serait grandement apprécié ^^
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2006 à 19:05:53

      ta oublié le & devant ta variable dans ton scanf ^^
      • Partager sur Facebook
      • Partager sur Twitter
        16 janvier 2006 à 19:07:42

        dans ton scanf tu a oublié le & ...
        • Partager sur Facebook
        • Partager sur Twitter
          16 janvier 2006 à 19:10:02

          Une erreur toute bête, je vous remercie ^^
          • Partager sur Facebook
          • Partager sur Twitter
            16 janvier 2006 à 19:10:50

            Je te conseil de faire un swith au lieu de plein de if... else...
            • Partager sur Facebook
            • Partager sur Twitter
              16 janvier 2006 à 19:14:40

              Citation : Gambit2099

              Je te conseil de faire un swith au lieu de plein de if... else...



              D'accord merci, je prend note. :D
              • Partager sur Facebook
              • Partager sur Twitter
                16 janvier 2006 à 21:23:50

                Bonsoir a tous,
                J'ai essayé d'améliorer le jeu " + ou - ", mais certains détails m'échappent ? ce serait possible d'avoir un petit coup de main ? Merci d'avance.

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

                int main ( int argc, char argv[])
                {
                char NOMBRE = 0 , NMYSTERE = 0 , PARTIE = 0 , NIVEAU = 0 , REGLES = 0 ;
                //__________
                printf("Programme recree par Abstract777\n"); //Credits du jeu
                printf("Remerciements au SiteDuZero \n\n\n");
                  do
                  {
                  printf("Choix du niveau :\n\n"); //Choix du niveau
                  printf("1 - Court\n");
                  printf("2 - Moyen\n");
                  printf("3 - Long\n");
                  printf("4 - Tres long\n\n");
                  printf("Choisissez votre niveau : ");
                  scanf("%ld" , &NIVEAU ); //Demande du niveau
                //__________
                  {
                  if ( NIVEAU == 1 )
                   const long MAX = 50, MIN = 1 ; //Initialisation des variables
                  else if (NIVEAU++)
                   const long MAX = 100, MIN = 1 ; //Initialisation des variables
                  else if (NIVEAU++)
                   const long MAX = 200, MIN = 1 ; //Initialisation des variables
                  else if (NIVEAU++)
                   const long MAX = 400, MIN = 1 ; //Initialisation des variables
                  }
                srand(time(NULL)); //Initialisation du nombre aléatoire
                NMYSTERE = (rand() % (MAX - MIN + 1)) + MIN ; //Calcul du nombre aleatoire
                //__________
                    do //Seconde boucle : Elle fera tourner le jeu en boucle
                    {
                    printf("Entrez votre nombre : ");
                    scanf("%ld" , &NOMBRE ); //Demande du nombre
                    printf("\n");
                    if (NOMBRE == NMYSTERE) //Condition + Affichage si juste
                    printf("Vous avez trouve le nombre mystere !\n\n");
                    else if (NOMBRE > NMYSTERE) //Condition + Affichage si superieur
                    printf("C'est plus petit !\n\n");
                    else //Condition + Affichage si inferieur
                    printf("C'est plus grand !\n\n");
                    } while (NOMBRE != NMYSTERE); //Fin de boucle si condition verifiee
                  printf("Une autre partie ? ( 1 - Oui ; 0 - Non ) : ");
                  scanf("%ld" , &PARTIE );
                  } while ( PARTIE != 0 ); //Autre partie si condition de boucle vérifiee
                return (0) ; //Fin du programme si boucle verifiee
                }
                • Partager sur Facebook
                • Partager sur Twitter

                Problème avec le premier TP

                × 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