/*★ 関数名をパラメータとして渡す 前田 稔 ★*/ #include int add(int v1, int v2) { return(v1+v2); } int sub(int v1, int v2) { return(v1-v2); } int gcm(int i, int j) { int w1,w2; w1= i; w2= j; while(w1!=w2) { if (w1>w2) w1-= w2; else w2-= w1; } return(w1); }; int lcm(int v1, int v2) { return(v1*v2/gcm(v1,v2)); } int calc(int (*func)(int, int), int i, int j) { return((*func)(i,j)); } //★ MAIN 関数 int main() { printf("12+34= %d\n",calc(add,12,34)); printf("56-37= %d\n",calc(sub,56,37)); printf("GCM(24,32)=%d\n",calc(gcm,24,32)); printf("LCM(24,32)=%d\n",calc(lcm,24,32)); return 0; }