Bonjour lorsqu'on exécute ce programme les nombres ne s'échangent pas. Est-ce que c'est parce que dans la procédure on copie x et y dans p et q, puis p et q sont échangés mais les valeurs de p et q ne sont pas copiées dans x et y ?

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
#include <stdio.h>
void echange(int p, int q) // les paramètres sont passés par valeur
{
int temp;
printf("avant permutation dans la fonction p=%d q=%d\n",p,q);
temp=p;
p=q;
q=temp;
printf("après permutation dans la fonction p=%d q=%d\n",p,q);
}
int main(void)
{
int x=3,y=5;
printf("avant permutation x=%d y=%d\n",x,y);
echange(x,y);
printf("après permutation x=%d y=%d",x,y);
return 0;
}