반응형

C 언어 qsort() 함수 사용 예제 

 

#include <stdio.h>

#include <stdlib.h>    // qsort() 

 

// 오름차순으로 비교한 결과를 알려주는 사용자 정의 함수

// 반환값 1: a가 크다, -1: a가 작다, 0: 같다 

int compare(const void *a, const void *b)  

{

    int num1 = *(int *)a; // int 포인터로 형변환한 후에 값을 가져옴

    int num2 = *(int *)b; // int 포인터로 형변환한 후에 값을 가져옴

 

    if (num1 < num2)    // a가 작을 때 -1 반환 

        return -1;          // 내림차순이면 1 지정

    else if (num1 > num2)   // a가 클 때는 1 반환 

        return 1;          // 내림차순이면 -1 지정

    else 

 return 0;  // 같을 때는 0 반환

}

 

int main(void)

{

    int i;

    int arr[10] = { 50, 40, 30, 20, 10, 60, 70, 80, 90, 0 };    

 

    qsort(arr, sizeof(arr)/sizeof(arr[0]), sizeof(arr[0]), compare);

 

    for (i=0; i<10; i++)    

        printf("%d ", arr[i]);    // 0 10 20 30 40 50 60 70 80 90 

 

    return 0;

}

 

반응형

+ Recent posts