le type de variable d'une fonction de saisie
bonsoir à tous
j'ai un probleme dans le type des parametres d'une fonction de saisie de 2 entiers.
en faite je dois faire une fonction qui saisit 2 entiers a et b, ensuite cette foncton sera appelé dans le main()
Mon probleme est le suivant,j'ai déclaré au 1er lieu la fonction comme suit:
1ere solution:saisie par valeurs
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| void saisie(float x,float y)
{
printf("entrer un 1er reel: ");scanf("%f",&x);
printf("entrer un 2eme reel: ");scanf("%f",&y);
}
main()
{
float a,b;
saisie(a,b);
printf("la somme de %f et %f est %f: ",a,b,a+b);
} |
Pbl => quand je saisie 3 pour a et 2 pour b en affichage j'arais ":la somme de -10737455.0000 et -1074455.0000 est -214748352".Comme si le programme lit les adresses de a et b et non pas leurs valeurs
2eme solution:saisie par adresse
Qd je fais:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| void saisie(float *x,float *y)
{
printf("entrer un 1er reel: ");scanf("%f",x);
printf("entrer un 2eme reel: ");scanf("%f",y);
}
main()
{
float a,b;
saisie(&a,&b);
printf("la somme de %f et %f est %f: ",a,b,a+b);
} |
=>l'execution passe normalement
De meme si on déclare pas une fonction saisie et je saisie les 2 valeurs ds le main() comme ci l'execution passe normalement et j'aurais les resultats:
Code:
1 2 3 4 5 6 7 8 9 10
| void main()
{
float a,b;
printf("entrer un 1er reel: ");
scanf("%d",&a);
printf("entrer un 2eme reel: ");
scanf("%d",&b);
printf("la somme de %f et %f est %f: ",a,b,a+b);
} |
SVP aidez moi j'ai pas compri pourquoi ça marche pas correctement avec la 1ere methode et il lit pas les valeurs de a et b mais leurs adresses
BN