開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio 2017 (Clang/C2(試験的))
- プログラミング言語: C(Visual C)
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の7章(高度な関数 - 関数を最大限に活用する)、自分で考えてみよう(p. 339)を取り組んでみる。
自分で考えてみよう(p. 339)
コード
#include <stdlib.h> // system
#include <stdio.h>
enum response_type
{
DUMP,
SECOND_CHANCE,
MARRIAGE
};
typedef struct
{
char *name;
enum response_type type;
} Response;
void dump(Response r)
{
printf("%sさんへ、\n", r.name);
puts("残念ながら、前回のデートの結果、\n"
"再度お会いすることはないと連絡を受けました");
}
void second_chance(Response r)
{
printf("%sさんへ\n", r.name);
puts("よいお知らせです。前回のデートの結果\n"
"もう一度お会いしたいとの連絡を受けました。至急ご連絡ください。");
}
void marriage(Response r)
{
printf("%sさんへ\n", r.name);
puts("おめでとうございます!前回のデートの結果、"
"結婚を申しこみたいとの連絡を受けました。");
}
void(*replies[])(Response) = { dump, second_chance, marriage };
int main()
{
Response r[] = {
{"マイク", DUMP},
{"ルイス", SECOND_CHANCE},
{"マット", SECOND_CHANCE},
{"ウィリアム", MARRIAGE}
};
for (size_t i = 0; i < 4; i++)
{
replies[r[i].type](r[i]);
}
system("pause");
return 0;
}
入出力結果(コマンドプロンプト)
マイクさんへ、 残念ながら、前回のデートの結果、 再度お会いすることはないと連絡を受けました ルイスさんへ よいお知らせです。前回のデートの結果 もう一度お会いしたいとの連絡を受けました。至急ご連絡ください。 マットさんへ よいお知らせです。前回のデートの結果 もう一度お会いしたいとの連絡を受けました。至急ご連絡ください。 ウィリアムさんへ おめでとうございます!前回のデートの結果、結婚を申しこみたいとの連絡を受けました。 続行するには何かキーを押してください . . .
0 コメント:
コメントを投稿