C/C++ 언어 qsort() 함수를 이용한 수와 문자의 정렬 예제 프로그램 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int compare(int *a, int *b);
int r_compare(int *a, int *b); /*내림차순*/
int str_compare(char *a, char *b);
 
#define NUM_COUNT 10
#define STR_COUNT 5
 
void main(void) {
  int num[NUM_COUNT] = {4,1,5,9,3,2,8,6,7,4};
  int i = 0;
  size_t strings_len = 0;
  char *str[STR_COUNT] = {"Korea""Japan""America""China""France"};
 
  printf("number Asending order : ");
  qsort(num, NUM_COUNT ,sizeof(int), (int(*)(const void *,const void *))compare);
  for (i = 0; i < NUM_COUNT; i++) {
    printf("%d ", num[i]);
  }
 
  printf("\nnumber Desending order : ");
  qsort(num, NUM_COUNT, sizeof(int), (int(*)(const void *,const void *))r_compare);
  for (i = 0; i < NUM_COUNT; i++) {
    printf("%d ", num[i]);
  }
 
  printf("\nstring Asending order : ");
 
  strings_len = sizeof(str) / sizeof(char *);
  qsort(str, strings_len, sizeof(char *), (int(*)(const void *,const void *))str_compare);
  for (i = 0; i < STR_COUNT; i++) {
    printf("%s ", str[i]);
  }
 
  printf("\n");
}
 
int compare(int *a, int *b) { 
  return (*- *b);
}
 
int r_compare(int *a, int *b) { 
  return (*- *a);
}
 
int str_compare(char *a, char *b) { 
  const char **a1 = (const char **)a;
  const char **b1 = (const char **)b;
  return strcmp(*a1, *b1);
}
 
cs


C/C++ 언어 qsort() 함수를 이용한 수와 문자의 정렬 예제 프로그램 


+ Recent posts