Partage
  • Partager sur Facebook
  • Partager sur Twitter

Correction de mon code

    9 mars 2008 à 8:57:45

    a un moment dans le cour C que je suis en train de suivre, mateo demande de réaliser une calculatrice pour s'entrainer. J'ai essayé et voila ce que sa donne pourtant sa ne marche pas. Pouvez vous me trouver ma faute svp

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <math.h>
    4. int main(int argc, char *argv[])
    5. {
    6.         long Calcul;
    7.  printf("== Calculatrice ==\n\n");      //Page d'acceuil
    8.  printf("Quelle operation voulez vous realiser?\n");
    9.  printf("1.  Addition\n");
    10.  printf("2.  Soustraction\n");
    11.  printf("3.  Multiplication\n");
    12.  printf("4.  Division\n");
    13.  printf("\nQuel est votre choix?\n");
    14.  scanf("%ld", & Calcul);
    15.  printf("\n\n");
    16.  switch (Calcul)        //Après avoir choisit
    17.          case 1:        //addition
    18. long resultat = 0, nombre1 = 0, nombre2 = 0;
    19.  ptintf("Vous avez choisit l'addition\n");
    20.   printf("Entrez le nombre 1 : ");
    21.   scanf("%ld", &nombre1);
    22.   printf("Entrez le nombre 2 : ");
    23.   scanf("%ld", &nombre2);
    24.   resultat = nombre1 + nombre2;
    25.   printf ("%ld + %ld = %ld\n", nombre1, nombre2, resultat);
    26.          break;
    27.          case 2:        //soustraction
    28.         long resultat = 0, nombre1 = 0, nombre2 = 0;
    29.         printf("Vous avez choisit la soustraction\n");
    30.                 printf("Entrez le nombre 1 : ");
    31.                 scanf("%ld", &nombre1);
    32.                 printf("Entrez le nombre 2 : ");
    33.                 scanf("%ld"), &nombre2);
    34.                 resultat = nombre1 - nombre2;
    35.                 printf("%ld - %ld = %ld", nombre1, nombre2, resultat);
    36.          break;
    37.          case 3:        //multiplication
    38.         long resultat = 0, nombre1 = 0, nombre2 = 0;
    39.         printf("Vous avez choisit la soustraction\n");
    40.                 printf("Entrez le nombre 1 : ");
    41.                 scanf("%ld", &nombre1);
    42.                 printf("Entrez le nombre 2 : ");
    43.                 scanf("%ld"), &nombre2);
    44.                 resultat = nombre1 * nombre2;
    45.                 printf("%ld X %ld = %ld", nombre1, nombre2, resultat);
    46.          break;
    47.          case 4:        //division
    48.         long resultat = 0, nombre1 = 0, nombre2 = 0;
    49.         printf("Vous avez choisit la division\n");
    50.                 printf("Entrez le nombre 1 : ");
    51.                 scanf("%ld", &nombre1);
    52.                 printf("Entrez le nombre 2 : ");
    53.                 scanf("%ld"), &nombre2);
    54.                 resultat = nombre1 / nombre2;
    55.                 printf("%ld / %ld = %ld", nombre1, nombre2, resultat);
    56.                  break;
    57.          default:       //si erreur
    58.                 printf("Vous n'avez pas choisit un nombre correct.\n");
    59.                  break;
    60.   system("PAUSE");    
    61.   return 0;
    62. }

    est ce que sa pourait venir de mes décalages qui sont un peu mal foutu?
    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2008 à 9:22:25

      Salut,

      Alors je pense que tu devrais déclarer tes variables en tout début de fonction ce sera plus lisible pour quelqu'un qui n'a pas participé à ton petit projet ;-).
      Alors dans la famille fautes de frappes je dirais déjà à la ligne 20 la fonction printf est nommée "ptintf". Sinon faudrait que tu postes le message d'erreur car je n'ai pas de compilo sous la main...

      Ah et aussi tu pourrais utiliser des int à la place des long, ça devrait être suffisant dans le cas présent ;-).

      Bye
      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2008 à 9:27:11

        il manque les accolades pour ton switch ;)
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2008 à 9:40:00

          +1 toto, tu as été plus vite que moi ^^
          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2008 à 11:48:29

            oui je l'ai remarqué aussi juste avant de lire le message
            alors voici le rapport

            Citation : Rapport d'erreur

            1>------ Début de la génération : Projet : Calculatrice, Configuration : Debug Win32 ------
            1>Compilation en cours...
            1>main.c
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(15) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
            1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : voir la déclaration de 'scanf'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(20) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(23) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(25) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(27) : error C2065: 'resultat' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(27) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(27) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(28) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(28) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(28) : error C2065: 'resultat' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(32) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(35) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(37) : error C2059: erreur de syntaxe : ')'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(37) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(39) : error C2065: 'resultat' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(39) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(39) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(40) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(40) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(40) : error C2065: 'resultat' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(44) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(47) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(49) : error C2059: erreur de syntaxe : ')'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(49) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(51) : error C2065: 'resultat' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(51) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(51) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(52) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(52) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(52) : error C2065: 'resultat' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(55) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(58) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(60) : error C2059: erreur de syntaxe : ')'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(60) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(62) : error C2065: 'resultat' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(62) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(62) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(63) : error C2065: 'nombre1' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(63) : error C2065: 'nombre2' : identificateur non déclaré
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(63) : error C2065: 'resultat' : identificateur non déclaré
            1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Pierre\Documents\Visual Studio 2008\Projects\Calculatrice\Calculatrice\Debug\BuildLog.htm"
            1>Calculatrice - 39 erreur(s), 1 avertissement(s)
            ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========



            pour le code:
            1. #include <stdio.h>
            2. #include <stdlib.h>
            3. #include <math.h>
            4. int main(int argc, char *argv[])
            5. {
            6.         long Calcul;
            7.  printf("== Calculatrice ==\n\n");      //Page d'acceuil
            8.  printf("Quelle operation voulez vous realiser?\n");
            9.  printf("1.  Addition\n");
            10.  printf("2.  Soustraction\n");
            11.  printf("3.  Multiplication\n");
            12.  printf("4.  Division\n");
            13.  printf("\nQuel est votre choix?\n");
            14.  scanf("%ld", & Calcul);
            15.  printf("\n\n");
            16.  switch (Calcul)        //Après avoir choisit
            17.  {
            18.          case 1 :       //addition
            19. long resultat = 0, nombre1 = 0, nombre2 = 0;
            20.  printf("Vous avez choisit l'addition\n");
            21.   printf("Entrez le nombre 1 : ");
            22.   scanf("%ld", &nombre1);
            23.   printf("Entrez le nombre 2 : ");
            24.   scanf("%ld", &nombre2);
            25.   resultat = nombre1 + nombre2;
            26.   printf ("%ld + %ld = %ld\n", nombre1, nombre2, resultat);
            27.          break;
            28.          case 2 :       //soustraction
            29.         long resultat = 0, nombre1 = 0, nombre2 = 0;
            30.         printf("Vous avez choisit la soustraction\n");
            31.                 printf("Entrez le nombre 1 : ");
            32.                 scanf("%ld", &nombre1);
            33.                 printf("Entrez le nombre 2 : ");
            34.                 scanf("%ld"), &nombre2);
            35.                 resultat = nombre1 - nombre2;
            36.                 printf("%ld - %ld = %ld", nombre1, nombre2, resultat);
            37.          break;
            38.          case 3 :       //multiplication
            39.         long resultat = 0, nombre1 = 0, nombre2 = 0;
            40.         printf("Vous avez choisit la soustraction\n");
            41.                 printf("Entrez le nombre 1 : ");
            42.                 scanf("%ld", &nombre1);
            43.                 printf("Entrez le nombre 2 : ");
            44.                 scanf("%ld"), &nombre2);
            45.                 resultat = nombre1 * nombre2;
            46.                 printf("%ld X %ld = %ld", nombre1, nombre2, resultat);
            47.          break;
            48.          case 4 :       //division
            49.         long resultat = 0, nombre1 = 0, nombre2 = 0;
            50.         printf("Vous avez choisit la division\n");
            51.                 printf("Entrez le nombre 1 : ");
            52.                 scanf("%ld", &nombre1);
            53.                 printf("Entrez le nombre 2 : ");
            54.                 scanf("%ld"), &nombre2);
            55.                 resultat = nombre1 / nombre2;
            56.                 printf("%ld / %ld = %ld", nombre1, nombre2, resultat);
            57.                  break;
            58.          default:       //si erreur
            59.                 printf("Vous n'avez pas choisit un nombre correct.\n");
            60.                  break;
            61.  }
            62.   system("PAUSE");    
            63.   return 0;
            64. }

            je m'occupe du deplacement des variables tout de suite (mais je laisse long pour une calculatrice il faut des gros chifres^^)


            EDIT:
            apres avoir déplacé mes variables (et rendu le code plus lisible...) voila ce que j'ai

            1. #include <stdio.h>
            2. #include <stdlib.h>
            3. #include <math.h>
            4. int main(int argc, char *argv[])
            5. {
            6.  printf("== Calculatrice ==\n\n");                                                                      //Page d'acceuil
            7.  printf("Quelle operation voulez vous realiser?\n");
            8.  printf("1.  Addition\n");
            9.  printf("2.  Soustraction\n");
            10.  printf("3.  Multiplication\n");
            11.  printf("4.  Division\n");
            12.  printf("\nQuel est votre choix?\n");
            13.  scanf("%ld", & Calcul);
            14.  printf("\n\n");
            15. switch (Calcul)                                                                                                         /Après avoir choisit
            16.  {
            17.        case 1 :                                                                                                        //addition
            18. long resultat = 0, nombre1 = 0, nombre2 = 0;
            19.   printf("Vous avez choisit l'addition\n");
            20.   printf("Entrez le nombre 1 : ");
            21.   scanf("%ld", &nombre1);
            22.   printf("Entrez le nombre 2 : ");
            23.   scanf("%ld", &nombre2);
            24.   resultat = nombre1 + nombre2;
            25.   printf ("%ld + %ld = %ld\n", nombre1, nombre2, resultat);
            26.          break;
            27.          case 2 :                                                                                                               //soustraction
            28.   printf("Vous avez choisit la soustraction\n");
            29.   printf("Entrez le nombre 1 : ");
            30.   scanf("%ld", &nombre1);
            31.   printf("Entrez le nombre 2 : ");
            32.   scanf("%ld"), &nombre2);
            33.   resultat = nombre1 - nombre2;
            34.   printf("%ld - %ld = %ld", nombre1, nombre2, resultat);
            35.         break;
            36.         case 3 :                                                                                                                //multiplication
            37.   printf("Vous avez choisit la soustraction\n");
            38.   printf("Entrez le nombre 1 : ");
            39.   scanf("%ld", &nombre1);
            40.   printf("Entrez le nombre 2 : ");
            41.   scanf("%ld"), &nombre2);
            42.   resultat = nombre1 * nombre2;
            43.   printf("%ld X %ld = %ld", nombre1, nombre2, resultat);
            44.          break;
            45.         case 4 :                                                                                                                //division
            46.   printf("Vous avez choisit la division\n");
            47.   printf("Entrez le nombre 1 : ");
            48.   scanf("%ld", &nombre1);
            49.   printf("Entrez le nombre 2 : ");
            50.   scanf("%ld"), &nombre2);
            51.   resultat = nombre1 / nombre2;
            52.   printf("%ld / %ld = %ld", nombre1, nombre2, resultat);
            53.                  break;
            54.         default:                                                                                                                //si erreur
            55.                 printf("Vous n'avez pas choisit un nombre correct.\n");
            56.          break;
            57.  }
            58.   system("PAUSE");    
            59.   return 0;
            60. }


            et voici le rapport:

            Citation : Rapport d'erreur

            1>1>------ Début de la génération : Projet : Calculatrice, Configuration : Debug Win32 ------
            1>Compilation en cours...
            1>main.c
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(15) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
            1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : voir la déclaration de 'scanf'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(22) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
            1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : voir la déclaration de 'scanf'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(24) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
            1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : voir la déclaration de 'scanf'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(32) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
            1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : voir la déclaration de 'scanf'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(34) : error C2059: erreur de syntaxe : ')'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(46) : error C2059: erreur de syntaxe : ')'
            1>c:\users\pierre\documents\visual studio 2008\projects\main.c(57) : error C2059: erreur de syntaxe : ')'
            1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Pierre\Documents\Visual Studio 2008\Projects\Calculatrice\Calculatrice\Debug\BuildLog.htm"
            1>Calculatrice - 3 erreur(s), 4 avertissement(s)
            ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

            • Partager sur Facebook
            • Partager sur Twitter
              9 mars 2008 à 13:25:35

              voci le code qui fonctionne:
              #include <stdio.h>
              #include <stdlib.h>
              #include <math.h>

              int main(int argc, char *argv[])
              {
              long Calcul=0;
              printf("== Calculatrice ==\n\n"); //Page d'acceuil
              printf("Quelle operation voulez vous realiser?\n");
              printf("1. Addition\n");
              printf("2. Soustraction\n");
              printf("3. Multiplication\n");
              printf("4. Division\n");
              printf("\nQuel est votre choix?\n");
              scanf("%ld", & Calcul);
              printf("\n\n");
              if(Calcul==1)
              { //addition
              long resultat = 0, nombre1 = 0, nombre2 = 0;
              printf("Vous avez choisit l'addition\n");
              printf("Entrez le nombre 1 : ");
              scanf("%ld", &nombre1);
              printf("Entrez le nombre 2 : ");
              scanf("%ld", &nombre2);
              resultat = nombre1 + nombre2;
              printf ("%ld + %ld = %ld\n", nombre1, nombre2, resultat);
              }
              else if(Calcul==2)
              {
              long resultat = 0, nombre1 = 0, nombre2 = 0; //soustraction
              printf("Vous avez choisit la soustraction\n");
              printf("Entrez le nombre 1 : ");
              scanf("%ld", &nombre1);
              printf("Entrez le nombre 2 : ");
              scanf("%ld", &nombre2);
              resultat = nombre1 - nombre2;
              printf("%ld - %ld = %ld", nombre1, nombre2, resultat);
              }
              else if(Calcul==3) //multiplication
              {
              long resultat = 0, nombre1 = 0, nombre2 = 0;
              printf("Vous avez choisit la soustraction\n");
              printf("Entrez le nombre 1 : ");
              scanf("%ld", &nombre1);
              printf("Entrez le nombre 2 : ");
              scanf("%ld", &nombre2);
              resultat = nombre1 * nombre2;
              printf("%ld X %ld = %ld", nombre1, nombre2, resultat);
              }
              else if(Calcul==4)
              {
              long resultat = 0, nombre1 = 0, nombre2 = 0;
              printf("Vous avez choisit la division\n");
              printf("Entrez le nombre 1 : ");
              scanf("%ld", &nombre1);
              printf("Entrez le nombre 2 : ");
              scanf("%ld", &nombre2);
              resultat = nombre1 / nombre2;
              printf("%ld / %ld = %ld", nombre1, nombre2, resultat);
              }
              else
              { //si erreur
              printf("Vous n'avez pas choisit un nombre correct.\n");
              }
              system("PAUSE");
              return 0;
              }

              j'ai juste remplacer le switch par if car je n'arrivais pas a le corriger
              j'espere que ce code fonctionne pour toi car pour moi avec dev c++ il
              fonctionne parfaitement
              • Partager sur Facebook
              • Partager sur Twitter
                9 mars 2008 à 13:44:45

                scanf("%ld", & Calcul);


                C'est pas ca
                scanf("%ld", &Calcul);

                sans le espace entre le & et le nom de ta variable.
                • Partager sur Facebook
                • Partager sur Twitter

                Correction de mon 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