Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec les fonctions

Sujet résolu
    17 avril 2006 à 17:18:51

    Voila j'ai un (gros) problème : Avec ce code :
    #include <stdio.h>
    #include <stdlib.h>
    double conversion_francs_euros(double francs) //Ma fonction
    {
         double euros = 0;
       
        euros = francs / 6.55957;
        return euros;

    }
    double conversion_euros_francs(double euros)// une autre fonction
    {
         double francs = 0;
       
        francs = 6.55957 * euros;
        return francs;

    }
    int main(int argc, char *argv[])
    {
        double choix = 0, montant = 0, resultat = 0;
        printf("***************\n");//MENU
        printf("*Convertisseur*\n");//MENU
        printf("***************\n");//MENU
        printf("1.Conversion Francs => Euros\n");//MENU
        printf("2.Conversion Euros => Francs\n");//MENU
        printf("Choisissez une option ");//MENU
        scanf("%ld", &choix);
        printf("\nQuel est le montant a convertir ? ");
        if(choix = 1)//fRANCS => EUROS
        {
                 scanf("%ld", &montant);
                 resultat = conversion_francs_euros(montant);
                 printf("%ld Francs est egal a %ld Euros\n", montant, conversion_francs_euros(montant));
        }
        else if(choix = 2)
        {
                 scanf("%ld", &montant);
                 resultat = conversion_euros_francs(montant);
                 printf("%ld Euros est egal a %ld Francs\n", montant, conversion_euros_francs(montant));
        }
        else
        {
                 printf("Choix invalide");
        }
      system("PAUSE");     
      return 0;
    }

    Voila ce qu'il me met :

    ***************
    *Convertisseur*
    ***************
    1.Conversion Francs => Euros
    2.Conversion Euros => Francs
    Choisissez une option 1

    Quel est le montant a convertir ? 51
    51 Francs est egal a 0 Euros
    Appuyez sur une touche pour continuer...

    Si quelqu'un pouvait m'aider!

    [edit de louisclem] titre > minuscules, code > C
    • Partager sur Facebook
    • Partager sur Twitter
      17 avril 2006 à 17:28:50

      Salut ernya93;

      Tout d'abord essaye d'avoir des titres de posts un peu plus explicite :( , ça permetra de mieux si retrouver sur le forum.

      Pour en revenir à ton problème, cherche au niveau des correspondances entre les noms des variables de ce que tu demandes de saisir à l'utilisateurs et aux noms des variables dans tes fonctions. :-°

      Je t'en dis pas plus il faut que tu cherches un peu par toi même. Mais si tu trouves toujours pas, dit le et je te guiderais un peu mieux. :D

      Amicallement,

      deLux

      • Partager sur Facebook
      • Partager sur Twitter
        17 avril 2006 à 17:31:44

        Essayes ça :

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

        double conversion_francs_euros(double);
        double conversion_euros_francs(double);

        double conversion_francs_euros(double francs) //Ma fonction
        {
          double euros;
          euros = francs / 6.55957;
          return euros;
         
        }

        double conversion_euros_francs(double euros)// une autre fonction
        {
          double francs;
          francs = 6.55957 * euros;
          return francs;
         
        }

        int main(int argc, char *argv[])
        {
          int choix;
          double montant, resultat;
          printf("***************\n");//MENU
          printf("*Convertisseur*\n");//MENU
          printf("***************\n");//MENU
          printf("1.Conversion Francs => Euros\n");//MENU
          printf("2.Conversion Euros => Francs\n");//MENU
          printf("Choisissez une option ");//MENU
          scanf("%d", &choix);
          if(choix == 1)//fRANCS => EUROS
            {
              printf("\nQuel est le montant a convertir ? ")
              scanf("%lf", &montant);
              resultat = conversion_francs_euros(montant);
              printf("%lf Francs est egal a %lf Euros\n", montant, resultat);
            }
          if(choix == 2)
            {
                printf("\nQuel est le montant a convertir ? ");
              scanf("%lf", &montant);
              resultat = conversion_euros_francs(montant);
              printf("%lf Euros est egal a %lf Francs\n", montant, resultat);
            }     
          return 0;
        }
        • Partager sur Facebook
        • Partager sur Twitter
          17 avril 2006 à 17:40:28

          ... Pourquoi mettre un prototype si tu définit tes fonction avant main....(pour guzi ça :) ) Sinon pour les double on ne met pas %ld mais bien %lf :)

          guzi: c'est pas bien de donner un code tout fait comme ça... Il se fait donner un code et il ne cherchera même pas a trouver ses erreurs (enfin pour la plupart des gens)
          En plus tu as fait une erreur:
          scanf("%d", &choix);

          Si on met le %d on ne met pas &


          Voila :)
          • Partager sur Facebook
          • Partager sur Twitter
            17 avril 2006 à 18:10:54

            Parce que j'ai pris l'habitude de toujours protoyper mes fonctions, même lorsque cela n'est pas nécessaire...

            Pour l'erreur, c'etait pour ne pas donner un code tout fait sans erreur :p (je plaisante bien sur)...

            En tout cas c'est noté, je ne donnerais plus un code tout fait...
            • Partager sur Facebook
            • Partager sur Twitter
              17 avril 2006 à 18:27:06

              Citation : ernya93

              Voila j'ai un (gros) problème : Avec ce code


              Peut être qu'une meilleure adéquation entre les formats et les types aiderai ?

              Compiling: main.c
              main.c: In function `main_':
              main.c:30: warning: long int format, double arg (arg 2)
              main.c:32: warning: suggest parentheses around assignment used as truth value
              main.c:32: warning: comparing floating point with == or != is unsafe
              main.c:34: warning: long int format, double arg (arg 2)
              main.c:36: warning: long int format, double arg (arg 2)
              main.c:36: warning: long int format, double arg (arg 3)
              main.c:38: warning: suggest parentheses around assignment used as truth value
              main.c:38: warning: comparing floating point with == or != is unsafe
              main.c:40: warning: long int format, double arg (arg 2)
              main.c:42: warning: long int format, double arg (arg 2)
              main.c:42: warning: long int format, double arg (arg 3)
              Linking console executable: C:\dev\forums\OP\01.exe
              Process terminated with status 0 (0 minutes, 0 seconds)
              0 errors, 16 warnings


              Citation : Alcor


              scanf("%d", &choix);


              Si on met le %d on ne met pas &


              Tu es sûr de ça ?
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !

              Probleme avec les fonctions

              × 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