Ovaj primjer sadrži dvije različite tehnike zamjene brojeva u programiranju na jeziku C. Prvi program koristi privremenu varijablu za zamjenu brojeva, dok drugi program ne koristi privremene varijable.
Primjer 1: Zamjena brojeva (pomoću privremene varijable)
#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; )
Izlaz
Prije zamjene. a = 5, b = 10 Nakon zamjene. a = 10, b = 5
Za izvođenje zamjene u gornjem primjeru koriste se tri varijable.
Sadržaj prve varijable kopira se u vremensku varijablu. Zatim se sadržaj druge varijable kopira u prvu varijablu.
Napokon, sadržaj varijable temp kopira se natrag u drugu varijablu koja dovršava postupak zamjene.
Zamjenu možete izvršiti i pomoću samo dvije varijable kao u nastavku.
Primjer 2: Zamijenite brojeve bez upotrebe privremenih varijabli
#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; )
Rezultat ovog programa jednak je prvom programu gore.
Pogledajmo kako ovaj program radi:
- U početku
a = 5
ib = 10
. - Zatim dodamo a i b i spremimo ih u a s kodom
a = a + b
. To značia = 5 + 10
. Dakle,a = 15
sada. - Tada koristimo kod
b = a - b
. To značib = 15 - 10
. Dakle,b = 5
sada. - Opet, koristimo kod
a = a - b
. To značia = 15 - 5
. Dakle, na kraju,a = 10
.
Stoga su brojevi zamijenjeni.
Napomena: Množenje i dijeljenje možemo koristiti umjesto zbrajanja i oduzimanja. Međutim, to neće uspjeti ako je jedan od brojeva 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