C출력 결과보통 · 20점#함수 포인터#함수#배열#반복문

78. 함수 포인터 배열로 연산 고르기

다음 C 프로그램의 실행 결과를 쓰시오.

1#include <stdio.h>
2
3int add(int a, int b) {
4 return a + b;
5}
6
7int sub(int a, int b) {
8 return a - b;
9}
10
11int mul(int a, int b) {
12 return a * b;
13}
14
15int apply(int (*f)(int, int), int x, int y) {
16 return f(x, y);
17}
18
19int main() {
20 int (*ops[3])(int, int) = {add, sub, mul};
21 int seq[5] = {2, 0, 1, 2, 0};
22 int acc = 1;
23 for (int i = 0; i < 5; i++) {
24 acc = ops[seq[i]](acc, i + 2);
25 printf("%d%c", acc, i < 4 ? ' ' : '\n');
26 }
27 printf("%d\n", apply(ops[1], 3, acc));
28 return 0;
29}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.