C Programma Apmainiet numurus cikliskā secībā, izmantojot Zvanu pēc atsauces

Šajā piemērā trīs lietotāja ievadītie numuri tiek apmainīti cikliskā secībā, izmantojot zvanu pēc atsauces.

Lai saprastu šo piemēru, jums vajadzētu būt zināšanām par šādām C programmēšanas tēmām:

  • C Norādes
  • C Adreses un norādes

Programma, lai mainītu elementus, izmantojot zvanu pēc atsauces

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

Rezultāts

Ievadiet attiecīgi a, b un c: 1 2 3 Vērtība pirms maiņas: a = 1 b = 2 c = 3 Vērtība pēc maiņas: a = 3 b = 1 c = 2 

Šeit trīs lietotāja ievadītie skaitļi tiek glabāti attiecīgi mainīgajos a, b un c. Šo numuru adreses tiek nodotas cyclicSwap()funkcijai.

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

Funkcijas definīcijā cyclicSwap(), mēs šīm adresēm esam piešķīruši rādītājus.

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

Mainot n1, n2 un n3 iekšpusē, cyclicSwap()tiek mainītas arī a, b un c vērtības iekšpusē main().

Piezīme . cyclicSwap()Funkcija neko neatgriež.

Interesanti raksti...