C_C++/기초_알고리즘_문제

(기초 알고리즘) 두 값 교환하기

고니자니 2022. 11. 3. 18:55
반응형

두 변수의 값을 교환하는 방법입니다.

 

int a=10;

int b=20;

 

a = b;    // 이렇게는 교환이 되지 않습니다.

b = a;

 

두 값을 교환하기 위해서는 임시 변수가 한 개 더 필요합니다.

int temp = a;
a = b;
b = temp;
int temp = b;
b = a;
a = temp;

 

C언어 코드

#include <stdio.h>
int main() 
{
	int a = 10;
	int b = 20;

	int temp = a;
	a = b;
	b = temp;

	printf("a=%d, b=%d\n", a, b);

	return 0;
}

C언어의 함수를 이용해서 교환하는 코드입니다.

#include <stdio.h>
void swap(int* a, int* b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}
int main() 
{
	int a = 10, b=20;
	
	swap(&a, &b);
	printf("a=%d, b=%d\n", a, b);

	return 0;
}

 

 

C++ 언어에서는 위의 swap 함수처럼 포인터를 이용해도 되지만, 참조 연산자를 이용해서 두 값을 교환할 수 있습니다.

C++ 코드

#include <iostream>
using namespace std;

void swap(int& a, int& b)
{
	int temp = a;
	a = b;
	b = temp;
}
int main()
{
	int a = 10, b = 20;
	swap(a, b);
	cout << "a=" << a << ", b=" << b << endl;
}

반응형