Números de troca do programa C em ordem cíclica usando chamada por referência

Neste exemplo, os três números inseridos pelo usuário são trocados em ordem cíclica usando chamada por referência.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação C:

  • Ponteiros C
  • Endereços e ponteiros da passagem C

Programa para trocar elementos usando chamada por referência

#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; ) 

Resultado

Insira a, bec respectivamente: 1 2 3 Valor antes de trocar: a = 1 b = 2 c = 3 Valor após trocar: a = 3 b = 1 c = 2 

Aqui, os três números inseridos pelo usuário são armazenados nas variáveis ​​a, bec, respectivamente. Os endereços desses números são passados ​​para a cyclicSwap()função.

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

Na definição da função de cyclicSwap(), atribuímos esses endereços a ponteiros.

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

Quando n1, n2 e n3 internos cyclicSwap()são alterados, os valores de a, bec internos main()também são alterados.

Nota: A cyclicSwap()função não está retornando nada.

Artigos interessantes...