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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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