Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de code

Erreur sans erreurs ...

    6 mars 2006 à 21:38:32

    Bonjour !

    J'essaie de faire un programme en C, mais il affiche une erreur là ou il n'y en a pas.

    Tu ne crois pas que le logiciel est plus qualifié pour voir des erreurs que toi, qui est un débutant ?

    Si et c'est ça qui m'inquiète : le programme dont je n'arrive pas à comprendre l'erreur est en fait un programme qui en regroupe 2 autres : un jeu de Plus ou Moins solo et un multijoueur (comme le TP ). Je les ai déjà fait dans d'autres codes sources qui fonctionnent parfaitement, alors j'ai juste fait un copier/coller, et ça ne marche plus.

    Finalement, j'ai cherché le lien qui menait à ce fichier sur Internet que je t'envoie. Tu pourrais le tester et trouver ce qui ne va pas pour moi ? Ca fait plus d'une heure que je cherche l'erreur alors qu'à priori, il n'y en a pas.



    Merci d'avance

    NB : J'aimerais mieux que ce soit quelqu'un qui utilise Dev-C/C++ qui réponde: ça pourrait peut-être marcher dans un autre IDE et pas dans celui-ci.
    • Partager sur Facebook
    • Partager sur Twitter
      6 mars 2006 à 21:53:57

      Lien mort.

      Pour ne pas avoir ce genre de surprise, colle le code ici, même s'il est long.
      • Partager sur Facebook
      • Partager sur Twitter
        6 mars 2006 à 21:55:43

        lien mort (deuxieme edition :) )
        • Partager sur Facebook
        • Partager sur Twitter
          6 mars 2006 à 22:44:43

          Lien mort, troisième... :-°
          Il ne faut pas nous donner le fichier en local... ;)
          • Partager sur Facebook
          • Partager sur Twitter
            6 mars 2006 à 22:49:33

            Ah ouais lol, j'avais pas vu ;) !

            Allez met au moins ton ip si tu veux que ca marche ou affiche le code !


            EDIT: et pour l'ip j'en suis même pas sur!
            • Partager sur Facebook
            • Partager sur Twitter
              6 mars 2006 à 23:23:12

              Pour que ca marche avec l'ip faut que le fichier soit dans un repertoir bien definie par un programme qui ouvre un ftp ou un server genre apache. De plus faut que le firewall ou le routeur soient correctement configurés.

              Si tu veux tu peux aussi utiliser no-ip pour mettre une adresse du genre "http://monsite.no-ip.org/" pour eviter de refourguer ton ip a tout le monde ( par exemple si ton FAI c'est neuf telecom et que tu as honte :p ).
              • Partager sur Facebook
              • Partager sur Twitter
                7 mars 2006 à 12:50:45

                Bon alors j'affiche directement le code source. Voili voilà :)

                Auf fiat, chez moi, c'est dans le printf qu'on affiche une erreur alors que c'est un copié/collé du cours (sauf que j'ai modifié le contenu)

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


                int main(int argc‚ char *argv[])
                { //Début de la fonction main
                long choix = 0

                     printf("\n================= Liste =================\n");
                     printf("|                                       |\n");
                     printf("|1. Jouer au Plus ou Moins : Solo       |\n");
                     printf("|2. Jouer au Plus ou Moins : Multijoueur|\n");
                     printf("|3. Infos Plus ou Moins : Solo          |\n");
                     printf("|4. Infos Plus ou Moins : Multijoueur   |\n");
                     printf("|_______________________________________|\n\n");
                     printf("Veuillez sélectionner une option affichée ci–dessus.\t");
                     scanf("%ld"‚ &choix);
                     
                     switch
                     { //Début du switch
                           case 1 :
                                //
                                //
                                //Début du codage du jeu Plus ou moins solo
                                //
                                //
                    long choix;
                    printf("\n=== Difficulte ===");
                    printf("\n|                |");
                    printf("\n|1. 1 a 100      |");
                    printf("\n|2. 1 a 1000     |");
                    printf("\n|3. 1 a 10000    |");
                    printf("\n|________________|\n\n");
                    printf("\nSelectionnez un niveau de difficulte. ");
                    scanf("%ld"‚ &choix);
                   

                    long nombreMystere = 0;
                    long nombreEntre = 0;
                    const long MAX = 100‚ MIN = 1;
                   
                if(choix == 1)
                    {
                    srand(time(NULL));
                    nombreMystere = (rand() % (MAX – MIN + 1)) + MIN;
                    do
                    {
                        printf("\n\n\nQuel est le nombre ? ");
                        scanf("%ld"‚ &nombreEntre);
                        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 !!!\n\n");
                    } while (nombreEntre != nombreMystere);

                    system("PAUSE");
                    }
                else if(choix == 2)
                    {
                        const long MAX = 1000‚ MIN = 1;
                    srand(time(NULL));
                    nombreMystere = (rand() % (MAX – MIN + 1)) + MIN;
                    do
                    {
                        printf("\n\n\nQuel est le nombre ? ");
                        scanf("%ld"‚ &nombreEntre);

                        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 !!!\n\n");
                    } while (nombreEntre != nombreMystere);
                    system("PAUSE");
                }
                else if(choix == 3)
                    {
                        const long MAX = 10000‚ MIN = 1;
                    srand(time(NULL));
                    nombreMystere = (rand() % (MAX – MIN + 1)) + MIN;
                    do
                    {
                        printf("\n\n\nQuel est le nombre ? ");
                        scanf("%ld"‚ &nombreEntre);
                        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 !!!\n\n");
                    } while (nombreEntre != nombreMystere);
                    }
                    system("PAUSE");
                    return 0;
                }
                           break;
                                //
                                //
                                //Fin du codage du jeu Plus ou Moins solo
                                //
                                //
                           case 2 :
                                //
                                //
                                //Début du codage du jeu Plus ou Moins multijoueur
                                  long nombreEntre = 0;
                  long nombreChoisi = 0;
                 
                  printf("Joueur 1‚ selectionnez un nombre a l'abri du regard du joueur 2. \n");
                  scanf("%ld"‚ &nombreChoisi);
                 
                while (nombreEntre != nombreChoisi)
                {
                    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTapez le nombre que le joueur précédent a entrer sans retourner en arriere ! \n");
                    scanf("%ld"‚ &nombreEntre);
                }
                  system("PAUSE");     
                  return 0;
                }
                           break;
                                //
                                //
                                //Fin du codage du jeu Plus ou Moins multijoueur
                                //
                                //
                           case 3 :
                                printf("Lorsque vous jouez au Plus ou Moins en mode Solo‚ c'est l'ordinateur qui choisi un nombre\n");
                                printf("et c'est à vous de le trouver.\nPremierement‚ il faut choisir le niveau de difficulte\n");
                                printf("(entre 1 et 100‚ entre 1 et 1 000 et entre 1 et 10 000). Ensuite‚ vous tapez un nombre et\n");
                                printf("l'ordinateur vous dira si le nombre mystere est plus grand ou plus petit que votre nombre.\n\n");
                           break;
                           case 4 :
                                printf("Dans ce mode multijoueur‚ le Joueur 1 choisi un nombre et le Joueur 2 essaie de le trouver.\n");
                                printf("C'est au Joueur 1 de dire si le nombre est plus grand ou plus petit. Interdit de mentir ;) \n\n");
                           break;
                           default :
                                printf("Votre demande n'est pas valide. Arrêt du programme\n\n."
                           break;
                     } //Fin du switch
                     
                  system("PAUSE");     
                  return 0;
                 
                } //Fin de la fonction main


                Ca va, il y a plus long ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  7 mars 2006 à 13:08:14

                  je pense que l'erreur viens de là :
                  scanf("%ld"‚ &choix);
                       
                       switch
                       { //Début du switch
                             case 1 :


                  il manque la variable qui agit sur le switch je suppose que c'est choix ? donc :

                  scanf("%ld"‚ &choix);
                       
                       switch (choix) //a ne pas oublier !
                       { //Début du switch
                             case 1 :
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 mars 2006 à 13:11:10

                    sous c::b j'ai de probleme d'affichage si je ne met mas d'espace entre printf et (
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 mars 2006 à 13:12:46

                      Citation : johnldu57

                      int main(int argc‚ char *argv[])
                      { //Début de la fonction main
                      long choix = 0


                      Manque un ';' ...

                      Citation : johnldu57


                           switch

                      manque la variable... quand au reste, c'est l'embrouille totale. Je te conseille de coder de façon 'incrémentale'
                      • Tu pars d'une version stable (qui compile)
                      • Tu ajoutes quelques lignes (même une...)
                      • Tu compiles : Si il y a des erreurs, tu corriges jusqu'à ce que ça compile.
                      • etc.

                      Si tu ecris 200 lignes de code sans vérifier, à moins que tu ne fasse pas d'erreurs, la mise au point risque d'être très complexe pour rien, car comme je viens de l'expliquer, on peut faire autrement...
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Music only !
                        7 mars 2006 à 16:02:35

                        Moi j'ai aussi un problème de ce genre en fait j'ai fait un ptit truc pour m'entrainer sur les pointeur mais sa marche pas et je trouve pas quelle est le problème... :-°
                        le pire c'est que c'est tout simple o_O

                        voila le code :

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

                        void decoupeVies(long* pointeurGrandeVies, long* pointeurVies);

                        int main(int argc, char *argv[])
                        {
                        long grandeVies = 0, vies = 150;
                        decoupeVies(&grandeVies, &vies);
                        printf("tu as %ld de grosse vie et %ld de petite vie!", grandeVies, vies);
                        return 0;
                        }

                        void decoupeVie(long* pointeurGrandeVies, long* pointeurVies)
                        {
                        *pointeurGrandeVies = *pointeurVies / 100;
                        *pointeurVies = *pointeurVies % 100;
                        }

                        bon c'est pas glorieux ce programme mais je suis un Zero :p
                        • Partager sur Facebook
                        • Partager sur Twitter
                          7 mars 2006 à 16:28:03

                          la balise code tu connais ?

                          c'est trés difficil de trouver sans coloration du code
                          • Partager sur Facebook
                          • Partager sur Twitter
                            7 mars 2006 à 18:16:45

                            Leur vient da la declaration de la fonction dans ton prototype tu mets un "s" a vie
                            et t'en mets pas dans la fonction elle meme c'est donc normale que ca ne marche pas et ce serait bien de mettre un getchar ou un system("PAUSE") mais si il est pas portable parce que sinon on risque pas de voir quelque chose :)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              7 mars 2006 à 18:26:23

                              ok merci
                              j'avait pas vu...
                              enfait je conaissait pas la balise...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                7 mars 2006 à 18:35:09

                                Citation : Li3F

                                Moi j'ai aussi un problème de ce genre en fait j'ai fait un ptit truc pour m'entrainer sur les pointeur mais sa marche pas et je trouve pas quelle est le problème... :-°
                                le pire c'est que c'est tout simple o_O

                                voila le code :

                                #include <stdio.h>
                                #include <stdlib.h>
                                void decoupeVies(long* pointeurGrandeVies‚ long* pointeurVies);

                                int main(int argc‚ char *argv[])
                                {
                                    long grandeVies = 0‚ vies = 150;
                                    decoupeVies(&grandeVies‚ &vies);
                                    printf("tu as %ld de grosse vie et %ld de petite vie!"‚ grandeVies‚ vies);
                                  return 0;
                                }

                                void decoupeVie(long* pointeurGrandeVies‚ long* pointeurVies)
                                {
                                     *pointeurGrandeVies = *pointeurVies / 100;
                                     *pointeurVies = *pointeurVies % 100;
                                }




                                bon c'est pas glorieux ce programme mais je suis un Zero :p



                                Tu as rajouté un s dans l'appel de ta fonction :p

                                decoupeVie(&grandeVies‚ &vies);


                                Citation : hayden

                                la balise code tu connais ?

                                c'est trés difficil de trouver sans coloration du code



                                lol ?

                                EDIT : Même pas vu la réponse, j'ai deux de tens, désolé -___-
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  7 mars 2006 à 18:35:37

                                  Moi ça recommence le problème : c'est à "case 2"

                                  [...]
                                   break
                                                  //
                                                  //
                                                  //Fin du codage du jeu Plus ou Moins solo
                                                  //
                                                  //
                                             case 2 :
                                                  //
                                                  //
                                                  //Début du codage du jeu Plus ou Moins multijoueur
                                    long nombreChoisi = 0;
                                   
                                    printf("Joueur 1‚ selectionnez un nombre a l'abri du regard du joueur 2. \n");
                                    scanf("%ld"‚ &nombreChoisi);
                                   
                                  long nombreEntre = 0;
                                  while (nombreEntre != nombreChoisi)
                                  {
                                      printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTapez le nombre que le joueur précédent a entrer sans retourner en arriere ! \n");
                                      scanf("%ld"‚ &nombreEntre);
                                  }
                                    system("PAUSE");     
                                    return 0;
                                  }
                                             break
                                                  //
                                                  //
                                                  //Fin du codage du jeu Plus ou Moins multijoueur
                                                  //
                                                  //
                                             case 3 :
                                                  printf("Lorsque vous jouez au Plus ou Moins en mode Solo‚ c'est l'ordinateur qui choisi un nombre\n");
                                                  printf("et c'est à vous de le trouver.\nPremierement‚ il faut choisir le niveau de difficulte\n");
                                                  printf("(entre 1 et 100‚ entre 1 et 1 000 et entre 1 et 10 000). Ensuite‚ vous tapez un nombre et\n");
                                                  printf("l'ordinateur vous dira si le nombre mystere est plus grand ou plus petit que votre nombre.\n\n");
                                             break
                                             case 4 :
                                                  printf("Dans ce mode multijoueur‚ le Joueur 1 choisi un nombre et le Joueur 2 essaie de le trouver.\n");
                                                  printf("C'est au Joueur 1 de dire si le nombre est plus grand ou plus petit. Interdit de mentir ;) \n\n");
                                             break
                                             default :
                                                  printf("Votre demande n'est pas valide. Arrêt du programme\n\n."
                                             break
                                       } //Fin du switch
                                       
                                    system("PAUSE");     
                                    return 0;
                                   
                                  } //Fin de la fonction main


                                  Au fait, j'avais fait comme tu as dis, mais dans d'autres projets : j'ai fait un copié/collé comme ça fonctionnait.
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Problème de code

                                  × 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