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
#include <stdio.h>
 
 
void bubble_sort(int arr[], int len,int (*sort_func)(int,int))
{
    int temp;
    for (int i = 0; i < len-1; i++)
    {
        for (int j = 0; j < (len - i) - 1; j++)
        {
            if (sort_func(arr[j],arr[j+1]))
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1= temp;
            }
        }
    }
}
 
int case1(int n1, int n2)
{
    if (n1 > n2)
        return 1;
    else
        return 0;
}
int case2(int n1, int n2)
{
    if (n1 < n2)
        return 1;
    else
        return 0;
}
 
 
int main()
{
    int arr1[10= { 3,5,1,2,5,8,3,2,5,7 };
    bubble_sort(arr1, sizeof(arr1) / sizeof(int),case2);
    for (int i = 0; i < sizeof(arr1) / sizeof(int); i++)
    {
        printf("%d ", arr1[i]);
    }
 
    return 0;
}
cs


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
#include <stdio.h>
typedef int(*sort_func)(intint);
 
void bubble_sort(int arr[], int len,sort_func)
{
    int temp;
    for (int i = 0; i < len-1; i++)
    {
        for (int j = 0; j < (len - i) - 1; j++)
        {
            if (sort_func(arr[j],arr[j+1]))
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1= temp;
            }
        }
    }
}
 
int case1(int n1, int n2)
{
    if (n1 > n2)
        return 1;
    else
        return 0;
}
int case2(int n1, int n2)
{
    if (n1 < n2)
        return 1;
    else
        return 0;
}
 
 
int main()
{
    int arr1[10= { 3,5,1,2,5,8,3,2,5,7 };
    bubble_sort(arr1, sizeof(arr1) / sizeof(int),case1);
    for (int i = 0; i < sizeof(arr1) / sizeof(int); i++)
    {
        printf("%d ", arr1[i]);
    }
 
    return 0;
}
cs


전자코드를 typedef로 함수포인터 만들어서 후자로 했는데

9번째 if문 조건에 들어가는줄에 인자를 어떻게 넣어줘야함? 저렇게하니 오류나던데


typedef int(*sort_func)(int, int);

해놓고서

sort_func의 인자 int int를 어떻게 써서 해야하는지;;