#include <stdio.h>
int plus(int a, int b) { return a + b; }
int minus(int a, int b) { return a - b; }
int object (int (*method)(int, int),int valuea,int valueb);
int main(int argc, const char * argv[])
{
int valuea = 0; //数値A
int valueb = 0; //数値B
int command = 0; //コマンド
int anser = 0; //答え
scanf("%d",&valuea
); //数値Aに代入 scanf("%d",&valueb
); //数値Bに代入 printf("\n実行する計算のコマンドを入力してね\n"); scanf("%d",&command
); //変数commandに代入
if (command == 1) anser = object(plus, valuea,valueb);//コマンドが1ならばobject関数に足し算をするようにメソッドを送る
else if (command == 2) anser = object(minus, valuea, valueb);//コマンドが2ならばobject関数に引き算をするようにメソッドを送る
//object関数から帰ってきた計算の答えを変数anserに代入する
printf("\n答えは%dになりましたとさ。",anser
); //答えが入っている変数anserを標準出力
return 0;
}
int object (int (*method)(int, int),int valuea,int valueb) {
return (*method)(valuea, valueb);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgcGx1cyhpbnQgYSwgaW50IGIpIHsgcmV0dXJuIGEgKyBiOyB9CmludCBtaW51cyhpbnQgYSwgaW50IGIpIHsgcmV0dXJuIGEgLSBiOyB9CgppbnQgb2JqZWN0IChpbnQgKCptZXRob2QpKGludCwgaW50KSxpbnQgdmFsdWVhLGludCB2YWx1ZWIpOwoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIGludCB2YWx1ZWEgPSAwOyAvL+aVsOWApEEKICAgIGludCB2YWx1ZWIgPSAwOyAvL+aVsOWApEIKICAgIGludCBjb21tYW5kID0gMDsgLy/jgrPjg57jg7Pjg4kKICAgIGludCBhbnNlciA9IDA7IC8v562U44GICiAgICAKICAgIHByaW50Zigi5pWw5YCkQeOCkuWFpeWKm+OBl+OBpuOBrVxuIik7CiAgICBzY2FuZigiJWQiLCZ2YWx1ZWEpOyAvL+aVsOWApEHjgavku6PlhaUKICAgIHByaW50ZigiXG7mlbDlgKRC44KS5YWl5Yqb44GX44Gm44GtXG4iKTsKICAgIHNjYW5mKCIlZCIsJnZhbHVlYik7IC8v5pWw5YCkQuOBq+S7o+WFpQogICAgcHJpbnRmKCJcbuWun+ihjOOBmeOCi+ioiOeul+OBruOCs+ODnuODs+ODieOCkuWFpeWKm+OBl+OBpuOBrVxuIik7CiAgICBwcmludGYoIuOBn+OBl+OBluOCkz09MSDlvJXjgY3nrpc9PTJcbiIpOwogICAgc2NhbmYoIiVkIiwmY29tbWFuZCk7IC8v5aSJ5pWwY29tbWFuZOOBq+S7o+WFpQogICAgCiAgICBpZiAoY29tbWFuZCA9PSAxKSBhbnNlciA9IG9iamVjdChwbHVzLCB2YWx1ZWEsdmFsdWViKTsvL+OCs+ODnuODs+ODieOBjO+8keOBquOCieOBsG9iamVjdOmWouaVsOOBq+i2s+OBl+eul+OCkuOBmeOCi+OCiOOBhuOBq+ODoeOCveODg+ODieOCkumAgeOCiwogICAgZWxzZSBpZiAoY29tbWFuZCA9PSAyKSBhbnNlciA9IG9iamVjdChtaW51cywgdmFsdWVhLCB2YWx1ZWIpOy8v44Kz44Oe44Oz44OJ44GMMuOBquOCieOBsG9iamVjdOmWouaVsOOBq+W8leOBjeeul+OCkuOBmeOCi+OCiOOBhuOBq+ODoeOCveODg+ODieOCkumAgeOCiwogICAgLy9vYmplY3TplqLmlbDjgYvjgonluLDjgaPjgabjgY3jgZ/oqIjnrpfjga7nrZTjgYjjgpLlpInmlbBhbnNlcuOBq+S7o+WFpeOBmeOCiwogICAgCiAgICBwcmludGYoIlxu562U44GI44GvJWTjgavjgarjgorjgb7jgZfjgZ/jgajjgZXjgIIiLGFuc2VyKTsgLy/nrZTjgYjjgYzlhaXjgaPjgabjgYTjgovlpInmlbBhbnNlcuOCkuaomea6luWHuuWKmwogICAgCiAgICByZXR1cm4gMDsKfQoKaW50IG9iamVjdCAoaW50ICgqbWV0aG9kKShpbnQsIGludCksaW50IHZhbHVlYSxpbnQgdmFsdWViKSB7CiAgICByZXR1cm4gKCptZXRob2QpKHZhbHVlYSwgdmFsdWViKTsKfQo=