Pourquoi mon programme ne fonctionne pas?

Fermé
Fious - Modifié par Chris 94 le 1/09/2016 à 17:39
 Utilisateur anonyme - 2 sept. 2016 à 22:21
Bonjour,
Je suis novice en programation et je ne comprends pas pourquoi mon programme ne marche pas. Je travaille sur xcode. Merci


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


int main()

{ int lvl=0;
    printf("Bienvenue, choisissez un niveau.\n 1, 2 ou 3\n");
    scanf("%d", &lvl);
    
    switch(lvl)
    
    {
        case 1: printf("le nombre mystere est se trouve entre 1 et 100");
            
            
    while(1)

{
      int nombreMystere = 0, nombreChoisi =0, compteur = 1, reponse=1 ;
    
    const int MAX = 100, MIN = 1;
    srand(time(NULL));
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    
    
    while (nombreMystere != nombreChoisi)
    
    {
        printf("Quel est le nombre?\n");
        scanf("%d", &nombreChoisi);
            
      
        if (nombreChoisi > nombreMystere)
                {printf("le resultat est plus petit\n"); compteur++;}
        
        if (nombreChoisi < nombreMystere)
                {printf("le resultat est plus grand\n"); compteur++;}
        
       if (nombreMystere==nombreChoisi)
                {printf("Bravo, vous avez gagné en %d coups\n Souhaitez vous continuer?\n", compteur);
        scanf("%d", &reponse);
        if (reponse==0) return 0;}
        
    }

}
   break;
            
        case 2: {printf("le nombre mystere est se trouve entre 1 et 100");
            
            while(1)
                
            {
                int nombreMystere = 0, nombreChoisi =0, compteur = 1, reponse=1 ;
                
                const int MAX = 1000, MIN = 1;
                srand(time(NULL));
                nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                
                
                while (nombreMystere != nombreChoisi)
                    
                {
                    printf("Quel est le nombre?\n");
                    scanf("%d", &nombreChoisi);
                    
                    
                    if (nombreChoisi > nombreMystere)
                    {printf("le resultat est plus petit\n"); compteur++;}
                    
                    if (nombreChoisi < nombreMystere)
                    {printf("le resultat est plus grand\n"); compteur++;}
                    
                    if (nombreMystere==nombreChoisi)
                    {printf("Bravo, vous avez gagné en %d coups\n Souhaitez vous continuer?\n", compteur);
                        scanf("%d", &reponse);
                        if (reponse==0) return 0;}
                    
                }
            }
            
        } break;
            
        case 3: {printf("le nombre mystere est se trouve entre 1 et 100");
            
            while(1)
                
            {
                int nombreMystere = 0, nombreChoisi =0, compteur = 1, reponse=1 ;
                
                const int MAX = 10000, MIN = 1;
                srand(time(NULL));
                nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                
                
                while (nombreMystere != nombreChoisi)
                    
                {
                    printf("Quel est le nombre?\n");
                    scanf("%d", &nombreChoisi);
                    
                    
                    if (nombreChoisi > nombreMystere)
                    {printf("le resultat est plus petit\n"); compteur++;}
                    
                    if (nombreChoisi < nombreMystere)
                    {printf("le resultat est plus grand\n"); compteur++;}
                    
                    if (nombreMystere==nombreChoisi)
                    {printf("Bravo, vous avez gagné en %d coups\n Souhaitez vous continuer?\n", compteur);
                        scanf("%d", &reponse);
                        if (reponse==0) return 0;}
                    
                }
            }
            
        } break;
        default: printf("Ce n'est pas un niveau");
    }
    

    }

2 réponses

Utilisateur anonyme
1 sept. 2016 à 17:55
Soit plus précis, problème de fonctionnement ? de compilation ? erreur ? warning ? quelles lignes ? etc...

Isole la partie qui déconne si possible
0
RFitoussi Messages postés 1 Date d'inscription jeudi 1 septembre 2016 Statut Membre Dernière intervention 2 septembre 2016
2 sept. 2016 à 16:44
Merci pour ta reponse.
En fait ce n'est pas la compilation le probleme, c'est juste qu'apres la compilation, lorsque j'appuie sur 1, 2 ou 3, le programme ne continue pas comme il devrait.
Le switch sert a choisir le niveau sauf qu'il ne fonctionne pas.
0
Utilisateur anonyme
2 sept. 2016 à 22:21
Donc en fait, dans le contenu des switch il y a uniquement

const int MAX = 1000,

Qui change, met ça dans une fonction avec le MAX en paramètre
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
2 sept. 2016 à 16:38
Sous gcc, ce code compile sans erreur et ne semble pas planter à l'exécution.
bash>johand@bata:~/src/CCM/C$ gcc -Wall -o mystere mystere.c
johand@bata:~/src/CCM/C$ gcc --version
gcc (Debian 6.1.1-11) 6.1.1 20160802


Peux-tu expliciter la différence entre les cas du switch, car j'ai une vue limitée et je ne vais pas commencer à faire des diff entre bouts de code ?
0