Acest exemplu conține două tehnici diferite pentru a schimba numerele în programarea C. Primul program utilizează variabile temporare pentru a schimba numerele, în timp ce al doilea program nu folosește variabile temporare.
Exemplul 1: schimbați numerele (folosind variabila temporară)
#include using namespace std; int main() ( int a = 5, b = 10, temp; cout << "Before swapping." << endl; cout << "a = " << a << ", b = " << b << endl; temp = a; a = b; b = temp; cout << "After swapping." << endl; cout << "a = " << a << ", b = " << b << endl; return 0; )
Ieșire
Înainte de a schimba. a = 5, b = 10 După schimbare. a = 10, b = 5
Pentru a efectua schimbul în exemplul de mai sus, sunt utilizate trei variabile.
Conținutul primei variabile este copiat în variabila temp. Apoi, conținutul celei de-a doua variabile este copiat în prima variabilă.
În cele din urmă, conținutul variabilei temp este copiat înapoi la a doua variabilă care finalizează procesul de schimbare.
De asemenea, puteți efectua swap-ul folosind doar două variabile ca mai jos.
Exemplul 2: schimbați numerele fără a utiliza variabile temporare
#include using namespace std; int main() ( int a = 5, b = 10; cout << "Before swapping." << endl; cout << "a = " << a << ", b = " << b << endl; a = a + b; b = a - b; a = a - b; cout << "After swapping." << endl; cout << "a = " << a << ", b = " << b << endl; return 0; )
Rezultatul acestui program este același cu primul program de mai sus.
Să vedem cum funcționează acest program:
- Inițial
a = 5
șib = 10
. - Apoi, adăugăm a și b și le stocăm într-un cu codul
a = a + b
. Aceasta înseamnăa = 5 + 10
. Deci,a = 15
acum. - Apoi folosim codul
b = a - b
. Aceasta înseamnăb = 15 - 10
. Deci,b = 5
acum. - Din nou, folosim codul
a = a - b
. Aceasta înseamnăa = 15 - 5
. Deci, în cele din urmăa = 10
,.
Prin urmare, numerele au fost schimbate.
Notă: Putem folosi înmulțirea și împărțirea în loc de adunare și scădere. Cu toate acestea, acest lucru nu va funcționa dacă unul dintre numere este 0.
int a = 5, b = 10; // using multiplication and division for swapping a = a * b; // a = 50 b = a / b; // b = 5 a = a / b; // a = 10