#include <stdio.h>
typedef struct {
int (*strategy)(int, int);
} Context;
int strategy1(int a, int b) {
return a + b;
}
int strategy2(int a, int b) {
return a - b;
}
int strategy3(int a, int b) {
return a * b;
}
int main() {
Context context;
context.strategy = strategy1;
int result = context.strategy(3, 4);
printf("Result: %d\n", result);
context.strategy = strategy2;
result = context.strategy(3, 4);
printf("Result: %d\n", result);
context.strategy = strategy3;
result = context.strategy(3, 4);
printf("Result: %d\n", result);
return 0;
}