Convertisseur en C , Ou est l'erreur ?
Résolu
Turki1923
Messages postés
590
Statut
Membre
-
Turki1923 Messages postés 590 Statut Membre -
Turki1923 Messages postés 590 Statut Membre -
Bonjour,
j'ai un petit problème , donc je ne trouve pas l'erreur , j'ai coder un convertisseur sa compile mais quand je tappe la valeur de euro mon programme me donne toujour 0.00000 comme réponse . voici mon code(essayer le vous comprendez mieu) :
Mon problème est dans le dernier printf dans le main() , la réponse est toujour 0.00000 ,
Merci d'avance pour vos réponses.
j'ai un petit problème , donc je ne trouve pas l'erreur , j'ai coder un convertisseur sa compile mais quand je tappe la valeur de euro mon programme me donne toujour 0.00000 comme réponse . voici mon code(essayer le vous comprendez mieu) :
#include <stdio.h>
#include <stdlib.h>
double pointeurConvertisseur(double *euro , double *franc , double *lira , double *dollar , int choixMonnaie , int convertirEnQuoi);
int main(int argc, char *argv[])
{
int choixMon = 0 , convertirEn = 0 ;
double e = 0 , f = 0 , l = 0 , d = 0 ;
printf ("Voici les monnaies que vous pouvez convertir : \n");
printf ("1 - Euro \n");
printf ("2 - Franc \n");
printf ("3 - Lira \n");
printf ("4 - Dollar \n");
printf ("Votre choix ? ");
scanf ("%d" , &choixMon);
printf ("\nEn quoi voulez-vous le convertir ? \n");
printf ("1 - Euro \n");
printf ("2 - Franc \n");
printf ("3 - Lira \n");
printf ("4 - Dollar \n");
printf ("Votre choix ? ");
scanf ("%d" , &convertirEn);
pointeurConvertisseur(&e,&f,&l,&d,choixMon,convertirEn);
printf ("\n sa fait : %f" , pointeurConvertisseur);
}
double pointeurConvertisseur(double *euro , double *franc , double *lira , double *dollar , int choixMonnaie , int convertirEnQuoi)
{
double resultat = 0 ;
switch(choixMonnaie)
{
case 1 :
printf ("\nvous avez choisis l'Euro que vous voulez convertir en ");
break;
case 2 :
printf ("\nvous avez choisis le Franc que vous voulez convertir en ");
break;
case 3 :
printf ("\nvous avez choisis le Lira que vous voulez convertir en ");
break;
case 4 :
printf ("\nvous avez choisis le Dollar que vous voulez convertir en ");
break;
default :
printf ("\nvous avez tapper le mauvais chiffre \n");
break ;
}
switch(convertirEnQuoi)
{
case 1 :
printf ("Euro");
break ;
case 2 :
printf ("Franc");
break ;
case 3 :
printf ("Lira");
break;
case 4 :
printf ("Dollar");
break ;
default :
printf ("vous avez tapper le mauvais chiffre\n");
break;
}
if(choixMonnaie == 1 && convertirEnQuoi == 2)
{
printf ("\nCombien d'euro avez-vous ? ");
scanf ("%d" , euro);
resultat = 5.5 * *euro ;
}
else if(choixMonnaie == 1 && convertirEnQuoi == 3)
{
printf ("\nCombien d'euro avez-vous ? ");
scanf ("%d" , euro);
resultat = 10.5 * *euro ;
}
return resultat ;
}
Mon problème est dans le dernier printf dans le main() , la réponse est toujour 0.00000 ,
Merci d'avance pour vos réponses.
A voir également:
- Convertisseur en C , Ou est l'erreur ?
- Convertisseur mp3 - Guide
- Convertisseur mp3 gratuit pour pc - Télécharger - Conversion & Extraction
- Convertisseur récupération de texte - Guide
- Convertisseur mov en mp4 - Télécharger - Conversion & Codecs
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
3 réponses
J'ai pas tout lu.
Mais, il y a au moins : scanf ("%d" , euro);
euro est un double*, il faut donc mettre = scanf("%lf",euro); (L minuscule).
Cdlt,
Mais, il y a au moins : scanf ("%d" , euro);
euro est un double*, il faut donc mettre = scanf("%lf",euro); (L minuscule).
Cdlt,
Bon, je vois que tu sembles commencer à apprendre le C. Il faut donc être indulgent, je suppose. Mais bon, sans vouloir t'offenser, ton code est une vraie soupe. Ceci dit, voici l'erreur :
Je ne comprend pas la logique qui t'a amené à écrire ça, mais la première ligne est superflue, et la seconde devrait être :
pointeurConvertisseur(&e,&f,&l,&d,choixMon,convertirEn);
printf ("\n sa fait : %f" , pointeurConvertisseur);
Je ne comprend pas la logique qui t'a amené à écrire ça, mais la première ligne est superflue, et la seconde devrait être :
printf ("\n sa fait : %f" , pointeurConvertisseur(&e,&f,&l,&d,choixMon,convertirEn));
scanf ("%lf" ,&euro);??!!pointeurConvertisseur(&e,&f,&l,&d,choixMon,convertirEn);
printf ("\n sa fait : %f" , pointeurConvertisseur);
C'est pas comme ça qu'on affiche la valeur de retour d'une fonction.
On déclare la variable valeur (par exemple) : double valeur;
On appelle la fonction : valeur=pointeurConvertisseur(&e,...);
Puis pour afficher : printf("...%f",valeur);
Ou tu peux faire directement : printf("%f",pointeurConvertisseur(&e,...));
Mais dans ce cas, tu devras rappeler la fonction si tu veux à nouveau la valeur. Donc pas trop conseillé en général.
Non c'est bien euro et pas &euro. Regarde bien le prototype de la fonction, il s'agit de double *euro.