開発環境
- OS: macOS High Sierra - Apple
- IDE(統合開発環境): Xcode - Apple
- プログラミング言語: C
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の7章(高度な関数 - 関数を最大限に活用する)、プールパズル(p. 335)を取り組んでみる。
プールパズル(p. 335)
//
// main.c
// sample1
//
// Created by kamimura on 2018/02/14.
// Copyright © 2018 kamimura. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.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("おめでとうございます!前回のデートの結果、\n"
"結婚を申し込みたいとの連絡を受けました。");
}
int main(int argc, const char * argv[]) {
Response r[] = {
{"マイク", DUMP},
{"ルイス", SECOND_CHANCE},
{"マット", SECOND_CHANCE},
{"ウィリアム", MARRIAGE}
};
for (size_t i = 0; i < 4; i++) {
switch (r[i].type) {
case DUMP:
dump(r[i]);
break;
case SECOND_CHANCE:
second_chance(r[i]);
break;
case MARRIAGE:
marriage(r[i]);
break;
default:
break;
}
}
return 0;
}
入出力結果(Terminal)
マイクさんへ 残念ながら、前回のデートの結果、 再度お会いすることはないとの連絡を受けました。 ルイスさんへ 良いお知らせです。前回のデートの結果、 もう一度お会いしたいとの連絡を受けました。至急ご連絡ください。 マットさんへ 良いお知らせです。前回のデートの結果、 もう一度お会いしたいとの連絡を受けました。至急ご連絡ください。 ウィリアムさんへ おめでとうございます!前回のデートの結果、 結婚を申し込みたいとの連絡を受けました。 Program ended with exit code: 0
0 コメント:
コメントを投稿