배열에 저장된 값을 반대로 바꾸어 출력하기
단순히 출력을 반대로하는것이 아니라 값을 바꾸어 출력을 하여 보자.
#include<stdio.h>
void print_reverse(int *pa, int n);
int main(void)
{
int a[] = { 10, 20, 30, 40, 50 };
printf("변경전 %d %d %d %d %d\n\n", a[0], a[1], a[2], a[3], a[4]);
print_reverse(a, 5);
return 0;
}
void print_reverse(int *pa, int n)
{
for (int i = 0; i < n / 2; i++) {
n--; // 배열의 길이[0~4] n을 5로 받음
pa[i] = pa[i] ^ pa[n];
pa[n] = pa[i] ^ pa[n];
pa[i] = pa[i] ^ pa[n];
/* 비트연산자를 이용한
값 교환*/
}
printf("변경후 %d %d %d %d %d\n", pa[0], pa[1], pa[2], pa[3], pa[4]);
}
저같은 경우는 temp라는 변수를 따로 주지않고 비트연산자를 이용하여 두수를 바꾸어주었습니다.
비트연산자 참고
temp라는 변수를 이용하게 될경우 아래와 같이 사용한다.
temp = pa[i];
pa[i] = pa[n];
pa[n] = temp;
'C' 카테고리의 다른 글
c언어 반복문 연습 여러가지 기호로 삼각형 출력하기 (0) | 2014.05.11 |
---|---|
c언어 문자열의 길이 구하기 (2) | 2014.04.29 |
c언어 문자열 배열과 널(null문자) (0) | 2014.04.29 |
c언어 rand 함수 이용하여 가장 많이 생성된수 찾기 (0) | 2014.04.29 |
c언어 2의n승의 결과 출력하기 (0) | 2014.04.29 |