Crée un programes de convertion en c

Résolu
farcry165 -  
 farcry165 -
Bonjour,tout d'abord je pressie que je sui un gros débutent (je n'est pas commencer le 2d), pour ésséiler de bien comprendre les fonction g décidé de faire un programmes de convention d'euro en francs mais le pb c que je na rive pas a demander combien d'euro l'utilisateur Ve convertir. voila mais code

#include <stdio.h>
#include <stdlib.h>
double conversion(double euros)
{
double francs = 0;
francs = 6.55957 * euros;
return francs;
}

int main(int argc, char *argv[])
{

printf("10 euros = %lfF\n", conversion(10));
printf("50 euros = %lfF\n", conversion(50));
printf("100 euros = %lfF\n", conversion(100));
printf("200 euros = %lfF\n", conversion(200));

system("PAUSE");
return 0;
}
Configuration: Windows Vista
Firefox 3.0.8

12 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Hello,

    Merci de faire un petit effort sur l'orthographe. Pour lire une valeur tu peux utiliser la fonction scanf :
    http://www.linux-france.org/article/man-fr/man3/scanf-3.html
    #include <stdio.h>
    #include <stdlib.h>
    
    double conversion(double euros){
      return 6.55957 * euros;
    }
    
    int main(int argc, char *argv[]){
      double d;
      printf("Choisissez une valeur en euros\n");
      scanf("%lf",&d);
      printf("%lf euros = %lfF\n",d,conversion(d));
      getchar(); // à la place du system("pause") qu'il ne faut pas utiliser
      return 0;
    }

    Bonne chance
    1
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Salut,
      Pour afficher un double, ce n'est pas lf mais f simplement.
      Ce qui donne :
      printf("%f euros = %fF\n",d,conversion(d));

      Et enfin pour le getchar, il faudra le doubler étant donner que le scanf générera un '\n' dans le buffer clavier.

      Cdlt
      0
  2. Darkyesus Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   7
     
    utiliser getchar() a la place de system("pause")?
    Car le system("pause"), ne marche que sur un OS connaissant la commande pause. Ceci nuit donc à la portabilité. Ce qui n'est pas le cas de getchar() qui est parfaitement portable.


    C'est vrai, mais je pense que ce n'est pas le moment de l'embrouiller avec ça ;)
    1
  3. Darkyesus Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   7
     
    Tu peux utiliser la fonction scanf("%ld", &euros);

    Il sera alors demmandé à l'utilisateur combien d'euros il veut convertir, et la valeur qu'il tapera sera enregistrée dans la variable euros
    0
  4. farcry165
     
    j'ai ésaillé de mettre le scanf dans ma fonction conversion mais quan je démare le programmes il ni a rien qui change (g rajouter dan la fonction int maint... printf("%lf",convertion);
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. farcry165
     
    merci beaucoup pour ton aide, est dsl pour l'autographe mon niveau est vraiment bas.
    0
  7. farcry165
     
    a est une petite question juste a titre d'information pour coi je dois utiliser getchar() a la place de system("pause")?
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      utiliser getchar() a la place de system("pause")?
      Car le system("pause"), ne marche que sur un OS connaissant la commande pause. Ceci nuit donc à la portabilité. Ce qui n'est pas le cas de getchar() qui est parfaitement portable.
      0
  8. farcry165
     
    merci de votre aide, et vous il vau mieus que je ne m'embrouille pas.
    0
  9. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Ok alors pour ne pas t'embrouiller : interdit d'utiliser la fonction system.

    Une chose importante, farcry165 : toutes les fonctions C de la librairie standard sont documentées. Par exemple si tu cherches informations sur la fonction scanf, tape :
    man scanf

    ... dans google (ou dans une console linux si tu es sous linux).
    http://www.linux-france.org/article/man-fr/man3/scanf-3.html

    Pour le double c'est bien %lf comme semble l'indiquer le man de printf et de scanf :
    l
    Indique  que la conversion sera de type d, i, o, u, x, X ou n et
    que le pointeur suivant est un pointeur sur un long  int  ou  un
    unsigned  long int (plutôt que sur un int), ou que la conversion
    sera de type e, f ou g et que le pointeur suivant est  un  poin-
    teur sur un double (plutôt que sur un float). Indiquer deux car-
    actères l successifs est  équivalent  à  indiquer  L.  Si  c’est
    utilisé avec %c ou %s, le paramètre correspondant est considéré,
    respectivement, comme un pointeur vers un caractère large ou une
    chaîne de caractères larges.
    

    Pour le getchar par contre c'est une bonne observation, merci fiddy.

    Bonne chance
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Pour le double c'est bien %lf comme semble l'indiquer le man de printf et de scanf :
      T'as dû mal lire le man de printf ^^.
      Pour scanf oui, le double c'est bien %lf, mais pour le printf c'est %f tout simplement.
      Ceci s'explique par le fait que le type float est promu en double pour les fonctions à arguments variables (cas du printf). Pour le scanf, on a un pointeur, donc pas de promotion.
      D'ailleurs, dans la norme C89/C90, %lf sera refusé dans ton printf par le compilateur.
      En C99, le compilateur l'accepte, mais il sera interprété comme un simpoe %f.
      Quoiqu'il en soit, pour afficher un double dans un printf, il faut utiliser %f.
      0
  10. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Ah ok je n'avais jamais fait gaffe, mais effectivement tu as raison.
    0
  11. farcry165
     
    encore une petite chose quand je m'ai getchar() a la place de system(PAUSE) et que je compile le programme souvre j'entre la valeur euro et le programme se ferme aven que j'ai le ten de lire
    0
  12. farcry165
     
    il y a un moyen pour que la fenêtre reste affiché avec le code getchar() ?
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      J'en ai parlé dans le poste #6 :
      Et enfin pour le getchar, il faudra le doubler étant donner que le scanf générera un '\n' dans le buffer clavier.
      0