Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème dans mon code

Sujet résolu
    20 février 2006 à 17:50:19

    Bonjour à tous j'ai un petit problème je vous montre le code de mon programme :

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

    double ConversionFrancsEuros(double francs)
    {
    double euros = 0;
    euros = francs / 6.55957;
    return euros;
    }

    double ConversionEurosFrancs(double euros)
    {
    double francs = 0;
    francs = euros * 6.55957;
    return francs;
    }

    int main(int argc, char *argv[])
    {
    char ChoixConversion = 0;
    double Somme = 0;
    char ContinuerQuitter = 1;

    while (ContinuerQuitter == 1)
    {
    printf("Quelle type de conversion voulez-vous effectuer ?\n");
    printf("1. Francs -> euros\n");
    printf("2. Euros -> francs\n");
    scanf("%ld", &ChoixConversion);

    switch (ChoixConversion)
    {
    case 1:
    printf("=== Conversion francs -> euros\n\n");
    printf("Entrez la valeur a convertir...\n");
    scanf("%lf", &Somme);
    printf("Cela fait %lf euros\n\n", ConversionFrancsEuros(Somme));
    case 2:
    printf("=== Conversion euros -> francs\n\n");
    printf("Entrez la valeur a convertir...\n");
    scanf("%lf", &Somme);
    printf("Cela fait %lf francs\n\n", ConversionEurosFrancs(Somme));
    default:
    printf("Votre choix est incorrect\n\n");
    }

    printf("Voulez-vous refaire une conversion ?\n");
    printf("1. Oui\n");
    printf("2. Non\n");
    scanf("%ld", &ContinuerQuitter);
    }

    system("PAUSE");
    return 0;
    }

    Alors quand je compile ça va tout marche pas d'erreur mais le petit problème c'est que quand on exécute le programme il effectue toutes les case du switch.

    Comment puis-je régler le problème ?

    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      20 février 2006 à 17:54:28

      Utilise la balise code pour rendre ton code plus lisible, stp.
      Si tu ne sais pas comment faire clique sur mode d'emploi en desous des smileys.

      EDIT : il me semble que tu a oublié de breaké. Mets break comme ceci :

      {
      case 1:
      printf("=== Conversion francs -> euros\n\n");
      printf("Entrez la valeur a convertir...\n");
      scanf("%lf", &Somme);
      printf("Cela fait %lf euros\n\n", ConversionFrancsEuros(Somme));
      break;
      case 2:
      printf("=== Conversion euros -> francs\n\n");
      printf("Entrez la valeur a convertir...\n");
      scanf("%lf", &Somme);
      printf("Cela fait %lf francs\n\n", ConversionEurosFrancs(Somme));
      break;
      default:
      printf("Votre choix est incorrect\n\n");
      break;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2006 à 17:55:52

        Il faut que tu mette des break entre tes différents case.

        un petit exemple :



        switch(variable)
        {
            case 1:
                printf("Hello");
                break;
            case 2:
                printf("Bonjour");
                break;
            default:
                printf("Goeidag");
        }



        \\ Fracass -- Greukteam Member //
        • Partager sur Facebook
        • Partager sur Twitter
          20 février 2006 à 17:56:25

          déjà commence par mettre ton code en couleur car là on y voit rien o_O

          voilà que ca donne c'est quand meme mieu non ?


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

          double ConversionFrancsEuros(double francs)
          {
          double euros = 0;
          euros = francs / 6.55957;
          return euros;
          }

          double ConversionEurosFrancs(double euros)
          {
          double francs = 0;
          francs = euros * 6.55957;
          return francs;
          }

          int main(int argc, char *argv[])
          {
          char ChoixConversion = 0;
          double Somme = 0;
          char ContinuerQuitter = 1;

          while (ContinuerQuitter == 1)
          {
          printf("Quelle type de conversion voulez-vous effectuer ?\n");
          printf("1. Francs -> euros\n");
          printf("2. Euros -> francs\n");
          scanf("%ld", &ChoixConversion);

          switch (ChoixConversion)
          {
          case 1:
          printf("=== Conversion francs -> euros\n\n");
          printf("Entrez la valeur a convertir...\n");
          scanf("%lf", &Somme);
          printf("Cela fait %lf euros\n\n", ConversionFrancsEuros(Somme));
          break;
          case 2:
          printf("=== Conversion euros -> francs\n\n");
          printf("Entrez la valeur a convertir...\n");
          scanf("%lf", &Somme);
          printf("Cela fait %lf francs\n\n", ConversionEurosFrancs(Somme));
          break;
          default:
          printf("Votre choix est incorrect\n\n");

          }

          printf("Voulez-vous refaire une conversion ?\n");
          printf("1. Oui\n");
          printf("2. Non\n");
          scanf("%ld", &ContinuerQuitter);
          }

          system("PAUSE");
          return 0;
          }

          EDIT : j'ai modifié ton code grace à fracass (avec les break)
          • Partager sur Facebook
          • Partager sur Twitter
            20 février 2006 à 17:59:10

            Citation : nzabee

            Bonjour à tous j'ai un petit problème je vous montre le code de mon programme :

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

            double ConversionFrancsEuros(double francs)
            {
                   double euros = 0;
                   euros = francs / 6.55957;
                   return euros;
            }

            double ConversionEurosFrancs(double euros)
            {
                   double francs = 0;
                   francs = euros * 6.55957;
                   return francs;
            }

            int main(int argc, char *argv[])
            {
              char ChoixConversion = 0;
              double Somme = 0;
              char ContinuerQuitter = 1;
             
              while (ContinuerQuitter == 1)
              {
                      printf("Quelle type de conversion voulez-vous effectuer ?\n");
                      printf("1. Francs -> euros\n");
                      printf("2. Euros -> francs\n");
                      scanf("%ld", &ChoixConversion);
             
                      switch (ChoixConversion)
                      {
                            case 1:
                               printf("=== Conversion francs -> euros\n\n");
                               printf("Entrez la valeur a convertir...\n");
                               scanf("%lf", &Somme);
                               printf("Cela fait %lf euros\n\n", ConversionFrancsEuros(Somme));
                            case 2:
                               printf("=== Conversion euros -> francs\n\n");
                               printf("Entrez la valeur a convertir...\n");
                               scanf("%lf", &Somme);
                               printf("Cela fait %lf francs\n\n", ConversionEurosFrancs(Somme));
                            default:
                                     printf("Votre choix est incorrect\n\n");
                      }
             
              printf("Voulez-vous refaire une conversion ?\n");
              printf("1. Oui\n");
              printf("2. Non\n");
              scanf("%ld", &ContinuerQuitter);
              }
                         
              system("PAUSE");     
              return 0;
            }



            Alors quand je compile ça va tout marche pas d'erreur mais le petit problème c'est que quand on exécute le programme il effectue toutes les case du switch.

            Comment puis-je régler le problème ?

            Merci d'avance !



            C'est mieux comme ça ?
            • Partager sur Facebook
            • Partager sur Twitter
              20 février 2006 à 18:01:09

              Oui beaucoup mieux on y voit déja plus clair.

              Donc comme je le disais dans mon message plus haut il faut juste que tu rajoute des break entre tes case.


              \\ Fracass -- Greukteam Member //
              • Partager sur Facebook
              • Partager sur Twitter
                20 février 2006 à 18:02:34

                Merci pour votre aide j'étais tellement concentré j'ai oublié de mettre les break :D . Merci encore !
                • Partager sur Facebook
                • Partager sur Twitter

                Problème dans 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