Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme code C

Sujet résolu
    4 janvier 2009 à 11:01:25

    bonjour à tous jai un petit probleme
    jai voulu faire les idées d'amélioaions de ce tuto voici le site
    http://www.siteduzero.com/tutoriel-3-1 [...] tml#ss_part_3
    et voila mon code je voulais savoir si vous pouvais m'aider à le rédiger car je suis un débutant
    Merci

    #include <stdio.h>
    #include <stdlib.h>
    #include<time.h>
    
    int main(int argc, char *argv[])
    {
       long nombreMystere=0 , nombreChoisi=0, nombreEntre=0;
       long choix = 0;
        long joueur=0;
        long max = 0 , min = 0;
        long compteur = 0;
        
      while (compteur < 10000)
               {            
      printf("==Menu==\n\n Mode \n\n 1 joueur \n 2 joueur\n\n");
      
      scanf("%ld",&joueur);    
      if (joueur==1)
      {
     printf("Mode solo active\nVeuillez patientez\n\n");
    }
    else if (joueur==2)
    {
    printf("Vous avez choisi le mode 2 joueurs\n\n");
    }
    else
    {
    printf("vous pouvez quitter le jeu\n");
    }
    printf("Choix de difficulté\n1- Facile\n2-moyen\n3-Difficile\n");
    scanf("%ld",&choix);
    if(choix==1,max==100, min==1);
    {
    printf("vous avez choisi le mode facile\n\n");
    }
    else if (choix==2, max==1000, min==1);
    {
    printf("vous avez choisi le mode moyen\n\n");
    }
    else (choix==3, max==10000, min==1);
    {
    printf("vous avez choisi le mode difficile, bonne chance!!\n\n");
    }
    
    
    srand (time(NULL));
      nombreMystere = (rand()%(max-min+1))+ min;
      int continuerPartie = 1, arreter = 0;
    
       do
        {
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreChoisi);
    
            // On compare le nombre entré avec le nombre mystère
    
            if (nombreMystere > nombreChoisi)
                printf("C'est plus !\n\n");
            else if (nombreMystere < nombreChoisi)
                printf("C'est moins !\n\n");
                
            else
                printf ("Bravo, vous avez trouve le nombre mystere en %ld coups!!\n\n",compteur);
                compteur++;
        } while (nombreChoisi != nombreMystere);
    
    }
    printf("Voulez- vous refaire une partie?\n\n\1- continuer Partie \n 2- arreter\n\n");
    
    system("PAUSE");
    return  0 ;
    

    • Partager sur Facebook
    • Partager sur Twitter
      4 janvier 2009 à 11:04:54

      Bonjour,
      Déjà, pour nous éviter de lire tout le code, pourrais-tu nous indiquer quel est ton problème?
      Si il y a, pourrais-tu nous donner les messages d'erreur de ton débbuggeur ?

      et... Vive l'indentation ! (tu n'as pas l'air de le penser...)
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        4 janvier 2009 à 11:08:03

        C'est moi ou tu as déjà crée un topic la-dessus ?
        Mon compilateur me dit ça :
        C:\JaKy\Programmation\C\Correction\main.c||In function `main':|
        C:\JaKy\Programmation\C\Correction\main.c|32|warning: left-hand operand of comma expression has no effect|
        C:\JaKy\Programmation\C\Correction\main.c|32|warning: left-hand operand of comma expression has no effect|
        C:\JaKy\Programmation\C\Correction\main.c|36|error: syntax error before "else"|
        C:\JaKy\Programmation\C\Correction\main.c|40|error: syntax error before "else"|
        C:\JaKy\Programmation\C\Correction\main.c|48|warning: unused variable `continuerPartie'|
        C:\JaKy\Programmation\C\Correction\main.c|48|warning: unused variable `arreter'|
        C:\JaKy\Programmation\C\Correction\main.c|73|error: syntax error at end of input|
        C:\JaKy\Programmation\C\Correction\main.c|7|warning: unused variable `nombreEntre'|
        ||=== Build finished: 3 errors, 5 warnings ===|

        Commence par le configurer, puis corrige tes erreurs ;)

        Citation : Tobast

        Si il y a, pourrais-tu nous donner les messages d'erreur de ton débbuggeur ?


        C'est le compilateur qui indique les messages d'erreurs, pas le debuggeur.
        • Partager sur Facebook
        • Partager sur Twitter
          4 janvier 2009 à 11:09:19

          ^^ euh oui, désolé.... Je me suis planté dans le vocabulaire :D
          • Partager sur Facebook
          • Partager sur Twitter
            4 janvier 2009 à 11:10:49

            mon probleme c'est que dans mon code quand je le lance le chiffre mystere est toujours zéro et je comprend pas poukoi
            • Partager sur Facebook
            • Partager sur Twitter
              4 janvier 2009 à 11:12:23

              Citation : Monsieur_JaKy

              C'est moi ou tu as déjà crée un topic la-dessus ?


              Oui il en a déjà créer un mais cette fois il a pris la peine de lire le Regl.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                4 janvier 2009 à 11:13:52

                Ah c'est que ton code se lance en plus ? o_O
                Alors change de compilateur...
                1 - Il faut mettre srand() au début de ton programme EDIT : Pas forcément en fait...
                2 - Déclarer des variables continuer et arreter en plein milieu d'un bloc ? Bof
                3 - Des virgules dans les conditions...il y a des opérateurs logiques ( && , >= , || ), pour ça.
                4 - Point virgule à la fin de tes conditions...
                5 - printf() inutile à la fin
                Je n'ai fait que regarder, commence par corriger tout ça ;)

                Eyyub : Ok au temps pour moi ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  4 janvier 2009 à 11:15:52

                  Citation : sylvainvolvic63530

                  mon probleme c'est que dans mon code quand je le lance le chiffre mystere est toujours zéro et je comprend pas poukoi


                  Même en ajoutant la } manquante à la fin, et comme déjà signalé, le code que tu as posté ne compile pas. Tu ne peux donc pas avoir le comportement que tu décris, ou alors tu n'as pas posté le bon code. Essaye de mettre de l'ordre dans tes idées...

                  Quand à

                  Citation : Pas de titre

                  if (choix == 2, max == 1000, min == 1);
                  

                  Ca n'a aucun sens. Que voulais-tu faire exactement ?


                  • Partager sur Facebook
                  • Partager sur Twitter
                  Music only !
                    4 janvier 2009 à 11:18:00

                    je voulais dire que si l'opéraeur prend le niveau de difficulté 2 , le nombre maxi sera 1000 et le mini =1
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 janvier 2009 à 11:18:38

                      Pourquoi mettre compteur++; à la fin de ta partie mets le sois quand tu tape un nombre ou tu le mets :
                      printf("C'est plus");
                      compteur++;
                      

                      et
                      printf("C'est moin");
                      compteur++;
                      

                      Voilà ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 janvier 2009 à 11:22:03

                        Un code complet qui marche (reprise du tien, mais perso je le trouve un peu bordélique... J'espère que ce ne sera pas comme ça avec 1000 lignes de code o_O ?) :

                        #include <stdio.h>
                        #include <stdlib.h>
                        #include<time.h>
                        
                        int main(int argc, char *argv[])
                        {
                           srand (time(NULL));
                           long nombreMystere=0 , nombreChoisi=0, nombreEntre=0;
                           long choix = 0;
                            long joueur=0;
                            long max = 0 , min = 0;
                            long compteur = 0;
                        
                          while (compteur < 10000)
                                   {
                          printf("==Menu==\n\n Mode \n\n 1 joueur \n 2 joueur\n\n");
                        
                          scanf("%ld",&joueur);
                          if (joueur==1)
                          {
                         printf("Mode solo active\nVeuillez patientez\n\n");
                        }
                        else if (joueur==2)
                        {
                        printf("Vous avez choisi le mode 2 joueurs\n\n");
                        }
                        else
                        {
                        printf("vous pouvez quitter le jeu\n");
                        }
                        printf("Choix de difficulté\n1- Facile\n2-moyen\n3-Difficile\n");
                        scanf("%ld",&choix);
                        if(choix==1)
                        {
                        max=100;
                        min=1;
                        printf("vous avez choisi le mode facile\n\n");
                        }
                        else if (choix==2)
                        {
                        max=1000;
                        min=1;
                        printf("vous avez choisi le mode moyen\n\n");
                        }
                        else if (choix==3)
                        {
                        max=10000;
                        min=1;
                        printf("vous avez choisi le mode difficile, bonne chance!!\n\n");
                        }
                        
                        
                        
                          nombreMystere = (rand()%(max-min+1))+ min;
                          int continuerPartie = 1, arreter = 0;
                        
                           do
                            {
                                // On demande le nombre
                                printf("Quel est le nombre ? ");
                                scanf("%ld", &nombreChoisi);
                        
                                // On compare le nombre entré avec le nombre mystère
                        
                                if (nombreMystere > nombreChoisi)
                                    {
                                        printf("C'est plus !\n\n");
                                    }
                                else if (nombreMystere < nombreChoisi)
                                    {
                                        printf("C'est moins !\n\n");
                                    }
                        
                                else
                                    {
                                        printf ("Bravo, vous avez trouve le nombre mystere en %ld coups!!\n\n",compteur+1);
                                    }
                                    compteur++;
                            } while (nombreChoisi != nombreMystere);
                        
                        }
                        printf("Voulez- vous refaire une partie?\n\n\1- continuer Partie \n 2- arreter\n\n");
                        
                        system("PAUSE");
                        return  0 ;
                        }
                        


                        Bon le temps de le rédiger, je me uis fait grille, mais bon...

                        Il y avait pas mal d'erreurs de syntaxe (ne mets pas de ; après un if, else if ou else !!! et après un else, on ne peut pas mettre de conditions !)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 janvier 2009 à 11:22:40

                          Citation : sylvainvolvic63530

                          je voulais dire que si l'opéraeur prend le niveau de difficulté 2 , le nombre maxi sera 1000 et le mini =1


                          if (choix == 2)
                          {
                             max = 1000; 
                             min = 1;
                          }
                          

                          C'est pas la partie la plus difficile du C... Relis le cours si tu as un doute...
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Music only !
                          Anonyme
                            4 janvier 2009 à 11:27:03

                            Complet ça ?
                            Et c'est toi qui parlais d'indentation ? o_O

                            #include <stdio.h>
                            #include <stdlib.h>
                            #include <time.h>
                            
                            int main(void)
                            {
                            
                                long nombreMystere = 0 , nombreChoisi = 0;
                                long choix = 0;
                                long joueur= 0;
                                long max = 0, min = 1;
                                long compteur = 0;
                            
                                srand (time(NULL));
                            
                                while (compteur < 10000)
                                {
                                    printf("==Menu==\n\n Mode \n\n 1 joueur \n 2 joueur\n\n");
                            
                                    scanf("%ld", &joueur);
                                    if (joueur==1)
                                    {
                                        printf("Mode solo active\n\n");
                                    }
                                    else if (joueur==2)
                                    {
                                        printf("Vous avez choisi le mode 2 joueurs\n\n");
                                    }
                                    else
                                    {
                                        printf("Vous pouvez quitter le jeu\n");
                                    }
                            
                                    printf("Choix de difficulte\n1-Facile\n2-Moyen\n3-Difficile\n");
                                    scanf("%ld",&choix);
                                    if (choix == 1)
                                    {
                                        max = 100;
                                        printf("Vous avez choisi le mode facile\n\n");
                                    }
                                    else if (choix == 2)
                                    {
                                        max = 1000;
                                        printf("Vous avez choisi le mode moyen\n\n");
                                    }
                                    else if (choix == 3)
                                    {
                                        max = 10000;
                                        printf("Vous avez choisi le mode difficile, bonne chance!!\n\n");
                                    }
                            
                            
                            
                                    nombreMystere = (rand() % (max - min + 1)) + min;
                            
                                    do
                                    {
                                        // On demande le nombre
                                        printf("Quel est le nombre ? ");
                                        scanf("%ld", &nombreChoisi);
                            
                                        // On compare le nombre entré avec le nombre mystère
                            
                                        if (nombreMystere > nombreChoisi)
                                        {
                                            printf("C'est plus !\n\n");
                                        }
                                        else if (nombreMystere < nombreChoisi)
                                        {
                                            printf("C'est moins !\n\n");
                                        }
                            
                                        else
                                        {
                                            printf ("Bravo, vous avez trouve le nombre mystere en %ld coups!!\n\n",compteur + 1);
                                        }
                                        compteur++;
                                    }
                                    while (nombreChoisi != nombreMystere);
                            
                                }
                            
                                system("PAUSE");
                                return  0 ;
                            }
                            

                            J'appelle ça un code un peu plus complet, même s'il n'est surement pas parfait.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 janvier 2009 à 11:29:03

                              Citation : MOI

                              code complet (Reprise du tien, même si je trouve ça un peu bordélique)



                              Je ne voulais pas refaire tout le code...
                              • Partager sur Facebook
                              • Partager sur Twitter

                              probleme code 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