본문 바로가기

컴퓨터/C 언어

배열없이 3개 정수 정렬하기

3개의 정수에서만 사용할 수 있는 트릭을 사용한 코드이다.

최솟값과 최댓값을 알면 나머지 한 값도 알 수 있는 방식이다.


#include <stdio.h>
#include <limits.h>

int main(int argc, char const *argv[]) {
    int m, M, val, i, t;
    m = INT_MAX, M = INT_MIN, t = 0;
    for(i = 0; i < 3; ++i) {
        scanf("%d", &val);
        if(m > val) m = val;
        if(M < val) M = val;
        t ^= val;
    }
    t ^= m ^ M;
    printf("정렬한 결과 : %d %d %d\n", m, t, M);
    return 0;
}


'컴퓨터 > C 언어' 카테고리의 다른 글

배열없이 3개 정수 정렬하기  (0) 2018.07.23
삼중자(Trigraph)  (0) 2018.07.22
int형 변수를 이진수로 출력하기  (0) 2016.09.24
[입력-형성평가5]  (0) 2014.10.07
[입력-형성평가4]  (0) 2014.10.07
[입력-형성평가3]  (0) 2014.10.07

태그