• 코드:
​x
 
1
#include <stdio.h>
2
​
3
double add(double, double);
4
double sub(double, double);
5
double mul(double, double);
6
double div(double, double);
7
double calculator(double , double, double (*func)(double, double));
8
​
9
int main(void)
10
{
11
    double (*calc)(double, double) = NULL;  // 함수 포인터 선언 
12
    double result = 0;
13
    
14
    double num01 = 3, num02 = 5;
15
    char oper = '*';
16
​
17
    switch (oper)
18
    {
19
        case '+':
20
            calc = add;
21
            break;
22
        case '-':
23
            calc = sub;
24
            break;
25
        case '*':
26
            calc = mul;
27
            break;
28
        case '/':
29
            calc = div;
30
            break;
31
        default:
32
            puts("사칙연산(+, -, *, /)만을 지원합니다.");
33
    }
34
​
35
    result = calculator(num01, num02, calc);
36
    printf("사칙 연산의 결과는 %lf입니다.\n", result);
37
    return 0;
38
}
39
​
40
double add(double num01, double num02)
41
{
42
    return num01 + num02;
43
}
44
​
45
double sub(double num01, double num02)
46
{
47
    return num01 - num02;
48
}
49
​
50
double mul(double num01, double num02)
51
{
52
    return num01 * num02;
53
}
54
​
55
double div(double num01, double num02)
56
{
57
    return num01 / num02;
58
}
59
​
60
double calculator(double num01, double num02, double (*func)(double, double))
61
{
62
    return func(num01, num02);
63
}
64
​
표준입력 & 실행옵션