fork download
  1. #include <stdio.h>
  2.  
  3. int plus(int a, int b) { return a + b; }
  4. int minus(int a, int b) { return a - b; }
  5.  
  6. int object (int (*method)(int, int),int valuea,int valueb);
  7.  
  8. int main(int argc, const char * argv[])
  9. {
  10. int valuea = 0; //数値A
  11. int valueb = 0; //数値B
  12. int command = 0; //コマンド
  13. int anser = 0; //答え
  14.  
  15. printf("数値Aを入力してね\n");
  16. scanf("%d",&valuea); //数値Aに代入
  17. printf("\n数値Bを入力してね\n");
  18. scanf("%d",&valueb); //数値Bに代入
  19. printf("\n実行する計算のコマンドを入力してね\n");
  20. printf("たしざん==1 引き算==2\n");
  21. scanf("%d",&command); //変数commandに代入
  22.  
  23. if (command == 1) anser = object(plus, valuea,valueb);//コマンドが1ならばobject関数に足し算をするようにメソッドを送る
  24. else if (command == 2) anser = object(minus, valuea, valueb);//コマンドが2ならばobject関数に引き算をするようにメソッドを送る
  25. //object関数から帰ってきた計算の答えを変数anserに代入する
  26.  
  27. printf("\n答えは%dになりましたとさ。",anser); //答えが入っている変数anserを標準出力
  28.  
  29. return 0;
  30. }
  31.  
  32. int object (int (*method)(int, int),int valuea,int valueb) {
  33. return (*method)(valuea, valueb);
  34. }
  35.  
Success #stdin #stdout 0.01s 1680KB
stdin
Standard input is empty
stdout
数値Aを入力してね

数値Bを入力してね

実行する計算のコマンドを入力してね
たしざん==1 引き算==2

答えは0になりましたとさ。