Bonjour,
Pour être sur d'avoir bien compris les fonctions, j'ai modifié un exemple de mon bouquin "Le programmeur, Le langage C". Je suis sur le chapitre des fonctions. Je pensais avoir compris, mais visiblement pas. j'aimerai donc comprendre un peu pourquoi ça ne fonctionne pas. Car dans l'exemple original on ne demande que 2 nombres, je m'était dit que pour 3 nombres, il suffisait de déclarer un int en plus dans les parenthèses de ma fonction.
Alors voilà, mon programme très simple, doit additionner 3 nombres entrés par l'utilisateur. Voici le code :
et voici les exemple de sortie que j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #include <stdio.h> int nombre1, nombre2, nombre3; int LeCalcul(int x, int y, int z); int main (int argc, const char * argv[]) { printf("Entrez le premier nombre : "); scanf("%d",&nombre1); printf("Entrez le second nombre : "); scanf("%d",&nombre2); printf("Entrez le troisième nombre :"); scanf("%d",&nombre3); /* Affichage du résultat par un printf */ printf ("\nLe produit de %d et de %d et %d : %d\n",nombre1, nombre2, nombre3,LeCalcul(nombre2,nombre2,nombre3)); return 0; } /* fonction LeCalcul qui fait une bête addition de 3 nombres, en int */ int LeCalcul(int x, int y, int z) { int total; total = x + y + z; return(total); }
Pourquoi donc ça foire ? Ou est mon erreur, qui doit être stupide, mais j'avoue ne pas voir ou ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 MonCalcul has exited with status 0. [Session started at 2006-07-16 08:25:40 +0200.] Entrez le premier nombre : 10 Entrez le second nombre : 10 Entrez le troisième nombre :10 Le produit de 10 et de 10 et 10 : 30 MonCalcul has exited with status 0. [Session started at 2006-07-16 08:25:51 +0200.] Entrez le premier nombre : 65 Entrez le second nombre : 1 Entrez le troisième nombre :1 Le produit de 65 et de 1 et 1 : 3
Partager