Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de compil avec code blocks

    20 mai 2006 à 20:30:52

    Bonjour a tous, je programme depuis quelques temps (j'ai finit désormais la partie 1) et j'ai programmé le jeu plus ou moins en amélioré.
    Je vous envoie le code ( désolé il est un peu long, je n'ai pas encore essayer de le faire avec des fonctions).

    /*

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

    Réalisé par M@teo21, pour les cours du Site du Zér0
    <lien url="http://www.siteduzero.com">www.siteduzero.com</lien> (cours de programmation en C / C++ pour débutants)

    Création le : 20/12/2005

    */



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


    int main ( int argc, char** argv )
    {
       
        //choix du niveau de difficulté:
        long niveau;
         printf("1.Simple: de 0 a 100\n");
         printf("2.Moyen: de 0 a 1000\n");
         printf("3.Difficile: de 0 a 10000\n");
         scanf("%ld", &niveau);
         
         if (niveau == 1); // niveau 1
         
             long nombreMystere = 0, nombreEntre = 0, nombreEntre2 = 0, nombreCoup = 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 */

       
         //choix du mode:
         long choixMode;
                 
                 printf("1.Mode un nombre:\n");
                 printf("2.Mode deux nombres:\n");
                 scanf("%ld", &choixMode);
         if (choixMode == 1) //on fait les deux modes
               
         //mode 1
               do
        {nombreCoup++;
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreEntre);

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

            if (nombreMystere > nombreEntre)
                printf("C'est plus !\n\n");
            else if (nombreMystere < nombreEntre)
                printf("C'est moins !\n\n");
            else
                printf ("Bravo, vous avez trouve le nombre mystere en %ld coups !!!\n\n", nombreCoup);
               
        } while (nombreEntre != nombreMystere);
       

       
         
               
               else if ( choixMode == 2) //mode 2
               

        do
        {nombreCoup++;
            // On demande le nombre
            printf("Tapez deux nombres:");
            scanf("%ld", &nombreEntre);
            scanf("%ld", &nombreEntre2);

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

            if (nombreMystere > nombreEntre && nombreMystere > nombreEntre2)
                printf("C'est plus que ces deux nombres\n\n");
            else if (nombreMystere < nombreEntre && nombreMystere < nombreEntre2)
                printf("C'est moins que ces deux nombres!\n\n");
            else if (nombreMystere < nombreEntre && nombreMystere > nombreEntre2)
                 printf("C'est entre ces deux nombres");
            else if (nombreMystere > nombreEntre && nombreMystere < nombreEntre2)
                 printf("C'est entre ces deux nombres");
            else
                printf("le bon nombre est %ld, vous l'avez trouve en  %ld coups, bravo", nombreMystere, nombreCoup);
                 
        } while (nombreEntre != nombreMystere && nombreEntre2 != nombreMystere);
       

         
         
         
         
         
         
         else if ( niveau == 2);// niveau 2
         
        {const long MAX = 1000, 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 */

         
              long choixMode;
                 
                 printf("1.Mode un nombre:\n");
                 printf("2.Mode deux nombres:\n");
                 scanf("%ld", &choixMode);
         if (choixMode == 1) //on fait les deux modes
               
         //mode 1
               do
        {nombreCoup++;
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreEntre);

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

            if (nombreMystere > nombreEntre)
                printf("C'est plus !\n\n");
            else if (nombreMystere < nombreEntre)
                printf("C'est moins !\n\n");
            else
                printf ("Bravo, vous avez trouve le nombre mystere en %ld coups !!!\n\n", nombreCoup);
               
        } while (nombreEntre != nombreMystere);
       

       
         
               
               else if ( choixMode == 2) //mode 2
               

        do
        {nombreCoup++;
            // On demande le nombre
            printf("Tapez deux nombres:");
            scanf("%ld", &nombreEntre);
            scanf("%ld", &nombreEntre2);

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

            if (nombreMystere > nombreEntre && nombreMystere > nombreEntre2)
                printf("C'est plus que ces deux nombres\n\n");
            else if (nombreMystere < nombreEntre && nombreMystere < nombreEntre2)
                printf("C'est moins que ces deux nombres!\n\n");
            else if (nombreMystere < nombreEntre && nombreMystere > nombreEntre2)
                 printf("C'est entre ces deux nombres");
            else if (nombreMystere > nombreEntre && nombreMystere < nombreEntre2)
                 printf("C'est entre ces deux nombres");
            else
                printf("le bon nombre est %ld, vous l'avez trouve en  %ld coups, bravo\n", nombreMystere, nombreCoup);
                 
        } while (nombreEntre != nombreMystere && nombreEntre2 != nombreMystere);
         
         else printf("tapez un chiffre correct");
         }
         
         
         
         
         if (niveau == 3); // niveau 3
         
           
        {const long MAX = 10000, 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 */

       
         //choix du mode:
         long choixMode;
                 
                 printf("1.Mode un nombre:\n");
                 printf("2.Mode deux nombres:\n");
                 scanf("%ld", &choixMode);
                 
         if (choixMode == 1) //on fait les deux modes
         //mode 1
               do
        {nombreCoup++;
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreEntre);

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

            if (nombreMystere > nombreEntre)
                printf("C'est plus !\n\n");
            else if (nombreMystere < nombreEntre)
                printf("C'est moins !\n\n");
            else
                printf ("Bravo, vous avez trouve le nombre mystere en %ld coups !!!\n\n", nombreCoup);
               
        } while (nombreEntre != nombreMystere);
       
        else if ( choixMode == 2) //mode 2
               

        do
        {nombreCoup++;
            // On demande le nombre
            printf("Tapez deux nombres:");
            scanf("%ld", &nombreEntre);
            scanf("%ld", &nombreEntre2);

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

            if (nombreMystere > nombreEntre && nombreMystere > nombreEntre2)
                printf("C'est plus que ces deux nombres\n\n");
            else if (nombreMystere < nombreEntre && nombreMystere < nombreEntre2)
                printf("C'est moins que ces deux nombres!\n\n");
            else if (nombreMystere < nombreEntre && nombreMystere > nombreEntre2)
                 printf("C'est entre ces deux nombres");
            else if (nombreMystere > nombreEntre && nombreMystere < nombreEntre2)
                 printf("C'est entre ces deux nombres");
            else
                printf("le bon nombre est %ld, vous l'avez trouve en  %ld coups, bravo\n", nombreMystere, nombreCoup);
                 
        } while (nombreEntre != nombreMystere && nombreEntre2 != nombreMystere);
        }
         
        system("PAUSE");
    }


    Ce code marche tres bien avec dev C++... quoique il y a un autre probleme, mais ce n'est pas ca qui me préoccupe.
    Donc j'ai rentré ce code sur code::blocks ( en ayant enlever la ligne avec system("PAUSE");
    Et j'obtient ce message ( la compil se passe tres bien mais...) Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 0 warnings

    Aidez moi s'ilvouplait, par ce que a ce niveau je préfèrerais utiliser code::blocks que dev C++.

    Autre probleme qui est plus dans le code lui meme, dans les niveaux moyen et difficile de mon jeu, le nombre mystere reste toujours entre 1 et 100 et non pas 1 et 1000 ou 1 et 10000 donc... Ca m'enerve un peu.

    Voili voilou, j'espere obtenir aide et reponse constructives ici :)
    Merci beaucoup d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      20 mai 2006 à 20:57:44

      pense a mettre d'abord les :
      <code type="c"></code>
      et ... regarde dans le fichier de ton projet s'il y'a un stderr.txt-> lmis le et dis moi ce qu'il y'a
      • Partager sur Facebook
      • Partager sur Twitter
        20 mai 2006 à 21:20:09

        Je met ou ca: <code type="c"></code>
        ?sinon pour le fichier de mon projet tu veux parler de quoi? La je vois pas...
        • Partager sur Facebook
        • Partager sur Twitter
          21 mai 2006 à 2:18:13

          tu met tout ton code entre des balise code comme oussama la montre, sa va colore le code et on pouras aissayer de comprendre quelque chose parce que la c'est sur le bord de l'impossible a comprendre... non colore, non indente...

          si tu veut le faire plus simplement edite ton message ( l'espece de petite boite a droite de l'heure ou tu a poster ) et tu selectionne tout ton code, tu clique sur la liste deroulante code puis tu selectionne 'c' se sera fait automatiquement

          ensuite dans le dossier de ton projet verifie si tu a un fichier stderr.txt et copie le ici

          et je rajouterai de verifier que tu as bien cree un projet consol sous code block ( ou importe ton projet devc++ a l'aide de son assistant ) sinon c'est certein que tu va avoir des probleme.
          • Partager sur Facebook
          • Partager sur Twitter
            21 mai 2006 à 2:31:18

            0 errors, 0 warnings, ca veut dire qu'aucun probleme n'a été detecté, mais tu dit que DevC++ detecte un probleme c'est ca ?
            • Partager sur Facebook
            • Partager sur Twitter
              22 mai 2006 à 21:43:24

              voila j'ai mis le code. En fait je voi pas de stderr.txt... c'est normal?
              Sinon oui jai bien créer un projet.

              Sinon j'ai un autre probleme. de temps en temps avec dev C++ je copie un code du site du zero. par ex celui ci:

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

              int main ( int argc, char** argv )
              {
              long nombreMystere = 0, nombreEntre = 0;
              const long MAX = 100, MIN = 1;

              // Génération du nombre aléatoire
              nombreMystere = genereNombre(MIN, MAX);

              /* 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("Quel est le nombre ? ");
              scanf("%ld", &nombreEntre);

              // On compare le nombre entré avec le nombre mystère
              compareNombres(nombreEntre, nombreMystere);

              } while (nombreEntre != nombreMystere);


              system("PAUSE");
              }

              Et j'obtient: [BuildError][Project1.exe]error 1

              Et ca me soule par ce que la j'avance plus du tout. Si quelqu'un veut m'expliquer plus facilement voici mon msn:
              pitiramoneur@msn.com

              Merci
              • Partager sur Facebook
              • Partager sur Twitter
                22 mai 2006 à 22:21:35

                Tu créé le bon type de projet ?
                • Partager sur Facebook
                • Partager sur Twitter
                  23 mai 2006 à 7:29:44

                  C'est a dire un projet en c? Ba oui, mais je ne vois pas ce qui peux coser ces problemes. Peut etre que j'ai mal installé quelquechose ou que je fais mal mes projets ou autre... Mais la je galere.
                  En fait J'ai limpression que ca dépend un peu des librairies que j'utilise.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 mai 2006 à 9:03:15

                    tu a encor oublier ta balise code...

                    et le cote bon projet c'est si tu a fait un projet consol et que tu fais compiler celui ci en c puisque tu programme en c. et ca doit probablement etre ton erreure quand tu copie un code quelque part.

                    ensuite je ne croi pas que sa est avoir avec tes librairies puisque tu n'utilise que du standart presentement. mais le conseil que j'aurais a te proposer c'est d'utiliser le debugger soit de dev-c++ ou de code::block et d'execute ton programme ligne par ligne (donc pas a pas) et tu va voir exactement ou est-ce que sa plante dans l'execution... parce que ton code n'a aparament pas de probleme de compilation (erreure de code normalement) de linkage(soit un oublie dans les options de linkeur ou un probleme de librairie) d'execution(ton programme plante en cour d'exucution on ne sait jamais trop pourquoi exepte dans le cas d'une dll manquante... et c'est ton probleme), alors seul solution pour la derniere categorie, le debuggeure, et suivre exactement se que le logiciel fais.

                    petit conseil d'utilisation du debuggeur, tu te met un point d'arret au dernier moment que tu est certein que le programme fonctione (la ligne ou tu a code la derniere acion visible, dans ton cas se sera a la premiere ligne de ton main puisque tu n'as aucune action visible presentement), et tu execute pas a pas jusqu'a se que sa plante, a se moment la tu sait a quel ligne sa plante, si tu est capable de coriger parfait, sinon tu repart avec un crayon et une feuille d epapier et tu fais la trace de tn programme a partir du moment que tu juge etre le bon (dan sotn cas le faire du debut n'est pas un probleme, mais dans un gros code de 500 ligne, se qui n'est pas si gros mais quand meme, tu ne veut pas trace l'etat de toute tes variable sur toute les 500 ligne.) fais particulierement attention quand tu rentre dans une boucle, si tu utilise un tableau c'est peut-etre du a un depacement de capacite, mais tu aurais du ten doute a l'etape precedente. alors en fesant ta trace tu peu savoir si tu a une valeur etrange qui aparait tu a trouve la cause d'erreure normalement.

                    petit truc aussi pour ta trace, plusieur compilateur te propose d'afficher les valeur de celle si lorsqu'on les survole, pour dev je ne sait pas, pour code::block tu doit active l'option dans les option du plugin gdb si je me souvien bien...

                    bon avec cela je croi que tu devrai y arive sinon on aissera de trouve autre chose...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 mai 2006 à 14:28:39

                      J'ai pas tout compris a ce que tu m'a dit... mais j'aimerais vraiment avoir de l'aide, donc comme tu m'a lair calé sur le sujet, je te passe mon msn: pitiramoneur@msn.com
                      Aide moi s'il te plait :euh:
                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 mai 2006 à 1:03:22

                        dit moi avec quel EDI tu travaille et je pourait t'aide plus, en attendant je t'ai rajoute a mon msn mais je croi qu'il serait suprenant que l'on se croise, je suis presque exactement de l'autre cote de la planete compare a la france, c'est donc environt 12h de decalage. mais bon quand meme si sa arrive.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 mai 2006 à 11:56:49

                          Salut
                          Il manque le return 0 (ou EXIT_SUCCESS) à la fin du programme à moins que tu ne l'ait pas mis dans ton post.

                          [EDIT]: je pense pas que ça doit être ça mais pour le problème avec MAX, pourquoi tu le mets en const ? Tu peux simplement le déclarer sans const au début et le modifier en fonction des choix du joueur => je crois que les définitions de variables en plein milieu d'un programme, c'est pas très correct.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 mai 2006 à 13:09:28

                            de 1 comme el-rere a dit en c tu na pas le droit de declare tes variable ou tu le veut, donc tu declarre tout en haut...ou du moin tout en haut d'un bloc quelqu'onque,c'est bien ce que tu fait presentement donc c'est pour sa que tu na pas d'ereure et tu a le droit dans se cas la...(dsl si j'avais l'aire de dire autre chose...), de plus tu a oublier tes acolades apres ton if pour le niveau 1, donc resutltat ta constante est declare la et elle ne peu plus etre modifier quand tu rentre dans le bon if, si tu fini par t'y rendre parce que normalement tu devrai avoir d'autre probleme d'ici la... genre sa execute le niveau 1 et ensuit le 2 alors que tu avais demande que le 2...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              26 mai 2006 à 20:31:45

                              Je crois que je vais refaire mon programme de facon plus simple, par ce que la, meme moi je m'y perd.
                              Sinon merci pour vos reponses, mais je n'avance toujours pas...
                              • Partager sur Facebook
                              • Partager sur Twitter

                              probleme de compil avec code blocks

                              × 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