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
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
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); }
2eme solution:saisie par adresse
Qd je fais:
=>l'execution passe normalement
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); }
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:
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
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); }
BN
Partager