C Programmez les numéros de permutation dans un ordre cyclique à l'aide de l'appel par référence

Dans cet exemple, les trois numéros saisis par l'utilisateur sont échangés dans un ordre cyclique en utilisant l'appel par référence.

Pour comprendre cet exemple, vous devez avoir la connaissance des sujets de programmation C suivants:

  • Pointeurs C
  • C Passer des adresses et des pointeurs

Programme pour permuter les éléments en utilisant l'appel par référence

#include void cyclicSwap(int *a, int *b, int *c); int main() ( int a, b, c; printf("Enter a, b and c respectively: "); scanf("%d %d %d", &a, &b, &c); printf("Value before swapping:"); printf("a = %d b = %d c = %d", a, b, c); cyclicSwap(&a, &b, &c); printf("Value after swapping:"); printf("a = %d b = %d c = %d", a, b, c); return 0; ) void cyclicSwap(int *n1, int *n2, int *n3) ( int temp; // swapping in cyclic order temp = *n2; *n2 = *n1; *n1 = *n3; *n3 = temp; ) 

Production

Entrez respectivement a, b et c: 1 2 3 Valeur avant échange: a = 1 b = 2 c = 3 Valeur après échange: a = 3 b = 1 c = 2 

Ici, les trois nombres saisis par l'utilisateur sont stockés respectivement dans les variables a, b et c. Les adresses de ces numéros sont transmises à la cyclicSwap()fonction.

cyclicSwap(&a, &b, &c); 

Dans la définition de fonction de cyclicSwap(), nous avons attribué ces adresses à des pointeurs.

cyclicSwap(int *n1, int *n2, int *n3) (… ) 

Lorsque n1, n2 et n3 à l'intérieur cyclicSwap()sont modifiés, les valeurs de a, b et c à l'intérieur main()sont également modifiées.

Remarque: la cyclicSwap()fonction ne renvoie rien.

Articles intéressants...