본문 바로가기
언어/C | C++

[C언어/초보를위한] 정수의 배열을 뒤집는 함수 구현하기

by 만결숭이 2022. 1. 27.
반응형

주어진 정수의 배열 순서를 뒤집는 (첫번째 수를 마지막으로 보냄) 함수

인자는 int에 대한 포인터와 배열 내의 int의 갯수이다.

 

void	rev_int_tab(int* tab, int size)
{
	int	i;
	int	j;
	int tmp;

	i = 0;
	j = size - 1;
	while (i < (size / 2))
	{
		tmp = tab[i];
		tab[i] = tab[j];
		tab[j] = tmp;
		i++;
		j--;
	}
}

 

i는 시작인 0을 가리키는 인덱스이고, j는 마지막을 가리키는 인덱스이다.

tmp는 양 쪽의 값들을 서로 바꿔주기 위해 필요한 임시 저장소라고 생각하면 된다. (swap 함수 구현 글 참고)

2022.01.27 - [IT/C] - [C언어] 서로의 두 값을 바꿔주는 swap 함수 구현하기

 

while문이 도는 조건은 size의 절반이다.

아래는 두 값을 바꿔주는 부분을 swap 함수로 뺀 코드이다.

동일한 결과가 나오는 코드로 상황에 따라 맞게 사용하면 된다.

 

void	swap(int *a, int *b)
{
	int	tmp;
    
    tmp = *a;
    *a = *b;
    *b = tmp;
 }

void	rev_int_tab(int* tab, int size)
{
	int	i;
	int	j;

	i = 0;
	j = size - 1;
	while (i < (size / 2))
	{
    	swap(tab[i], tab[j]);
		i++;
		j--;
	}
}

 

반응형

댓글