반응형
주어진 정수의 배열 순서를 뒤집는 (첫번째 수를 마지막으로 보냄) 함수
인자는 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--;
}
}
반응형
'언어 > C | C++' 카테고리의 다른 글
[C언어/초보를위한] 문자열을 복사하는 strcpy, strncpy 함수 구현하기 (0) | 2022.06.04 |
---|---|
[C언어/초보를위한] 몫, 나머지를 구하여 포인터로 담는 div, mod 함수 구현하기 / 왜 포인터를 쓸까? (0) | 2022.05.29 |
[C언어/초보를위한] 문자열의 길이를 반환하는 strlen 함수 구현하기 (0) | 2022.01.27 |
[C언어/초보를위한] 문자열을 출력하는 putstr 함수 구현하기 (0) | 2022.01.27 |
[C언어/초보를위한] 서로의 두 값을 바꿔주는 swap 함수 구현하기 (0) | 2022.01.27 |
댓글