Crée un programes de convertion en c
Résolu/Fermé
A voir également:
- Crée un programes de convertion en c
- Cree un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
- Comment creer un pdf - Guide
12 réponses
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
20 avril 2009 à 14:03
20 avril 2009 à 14:03
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
Bonne chance
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
Darkyesus
Messages postés
112
Date d'inscription
dimanche 29 mars 2009
Statut
Membre
Dernière intervention
4 août 2011
7
20 avril 2009 à 19:28
20 avril 2009 à 19:28
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 ;)
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 ;)
Darkyesus
Messages postés
112
Date d'inscription
dimanche 29 mars 2009
Statut
Membre
Dernière intervention
4 août 2011
7
20 avril 2009 à 13:04
20 avril 2009 à 13:04
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
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
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);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
a est une petite question juste a titre d'information pour coi je dois utiliser getchar() a la place de system("pause")?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
20 avril 2009 à 18:52
20 avril 2009 à 18:52
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.
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.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
20 avril 2009 à 23:49
20 avril 2009 à 23:49
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 :
... 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 :
Pour le getchar par contre c'est une bonne observation, merci fiddy.
Bonne chance
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
20 avril 2009 à 23:57
20 avril 2009 à 23:57
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.
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.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
20 avril 2009 à 23:59
20 avril 2009 à 23:59
Ah ok je n'avais jamais fait gaffe, mais effectivement tu as raison.
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 avril 2009 à 16:21
21 avril 2009 à 16:21
Normal, à cause du scanf.
J'en ai parlé au post #6 :http://www.commentcamarche.net/forum/affich 12094122 cree un programes de convertion en c?#6
Cdlt
J'en ai parlé au post #6 :http://www.commentcamarche.net/forum/affich 12094122 cree un programes de convertion en c?#6
Cdlt
il y a un moyen pour que la fenêtre reste affiché avec le code getchar() ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 avril 2009 à 16:38
21 avril 2009 à 16:38
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.
Et enfin pour le getchar, il faudra le doubler étant donner que le scanf générera un '\n' dans le buffer clavier.
20 avril 2009 à 18:50
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