Probleme ave double et long
miki
-
goulamass Messages postés 1427 Statut Membre -
goulamass Messages postés 1427 Statut Membre -
Bonjour, a tous voila je debute en programation C et pour m'entrainer j'ai decider de construire un programme de conversion tout bete qui convertit les franc en euro le probleme etant qu'il ne fonctionne pas lorsque je met un nombra decimale ici 6.555957 je croit que c'est un probleme de type etant donner que le nomre renvoyer et un long et que je le multiplie par un nombre decimale voici le code source
#include <stdio.h>
#include <stdlib.h>
double conv1(double n1)//création de la fonction convertion de type double
{
return 6.55957*n1;//renvoit de la valeur 6.55957*n1
}
int main(int argc, char *argv[])
{
long n2=0,resultat=0;//déclaration des variables n2=nombre entré par l'utilisateur et resultat=le resultat a afficher
printf("Entrez un chiffre a convertir \n");// Demande a l'utilisateur de taper son nombre a convertir
scanf("%ld",&n2);//récupère la saisie
resultat=conv1(n2);// appel de la fonction conv1
printf("Votre resultat est %ld\n",resultat);//affiche la valeur renvoyer par la fonction conv dont le resulta etait contenu dans la variable resultat
system("PAUSE");
return 0;
}
Merci de votre aide par avance
ps: ce programme peut paraitre enfentin pour les initiés mais pour moi c'est une façon de bien comprendre les base du c merci
#include <stdio.h>
#include <stdlib.h>
double conv1(double n1)//création de la fonction convertion de type double
{
return 6.55957*n1;//renvoit de la valeur 6.55957*n1
}
int main(int argc, char *argv[])
{
long n2=0,resultat=0;//déclaration des variables n2=nombre entré par l'utilisateur et resultat=le resultat a afficher
printf("Entrez un chiffre a convertir \n");// Demande a l'utilisateur de taper son nombre a convertir
scanf("%ld",&n2);//récupère la saisie
resultat=conv1(n2);// appel de la fonction conv1
printf("Votre resultat est %ld\n",resultat);//affiche la valeur renvoyer par la fonction conv dont le resulta etait contenu dans la variable resultat
system("PAUSE");
return 0;
}
Merci de votre aide par avance
ps: ce programme peut paraitre enfentin pour les initiés mais pour moi c'est une façon de bien comprendre les base du c merci
Configuration: Windows Vista Internet Explorer 7.0
3 réponses
-
En precisant que resultat est un double et n1 est un long ya pas de soucis ;)
#include <stdio.h> #include <stdlib.h> //Cette fonction converti les euros en francs ! double conv1(long n1)//création de la fonction convertion de type double { return 6.55957*n1;//renvoit de la valeur 6.55957*n1 } int main(int argc, char *argv[]) { long n2 = 0; double resultat = 0;//déclaration des variables n2=nombre entré par l'utilisateur et resultat=le resultat a afficher printf("Entrez un chiffre a convertir \n");// Demande a l'utilisateur de taper son nombre a convertir scanf("%ld",&n2);//récupère la saisie resultat = conv1(n2);// appel de la fonction conv1 printf("Votre resultat est %f\n",resultat);//affiche la valeur renvoyer par la fonction conv dont le resulta etait contenu dans la variable resultat #ifdef WIN32 system("PAUSE"); #endif return 0; } -
Ton programme converti des euros en francs, tu devrai rajouter une fonction du type:
double fr2euros(double n1){ return n1/6.55957; } -
Bonjour,
Pourquoi n'utilise pas des double tout au long du programme???