#include<stdio.h>
int add(int, int);
int sub(int, int);
int mul(int, int);
int div(int, int);
int mod(int, int);
int (*calc(char op)) (int a, int b);
int main( ) {
printf(" 10 + 5 = %d\n", calc('+')(10,5));
printf(" 10 - 5 = %d\n", calc('-')(10,5));
printf(" 10 * 5 = %d\n", calc('*')(10,5));
printf(" 10 / 5 = %d\n", calc('/')(10,5));
printf(" 10 %% 5 = %d ", calc('%')(10,5));
return 0;
}
int add(int a, int b) { return a+b; }
int sub(int a, int b) { return a-b; }
int mul(int a, int b) { return a*b; }
int div(int a, int b) { return a/b; }
int mod(int a, int b) { return a%b; }
int ( *calc(char op)) (int a, int b) {
switch (op) {
case '+': return add;
case '-': return sub;
case '*': return mul;
case '/': return div;
case '%': return mod;
default: NULL;
}
}