開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- C (プログラミング言語)
- Clang (コンパイラ)
C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の12章(高度な型)、12.1(構造体)、12.2(共用体)、12.3(typedef)、12.4(enum型)、12.5(キャスト)、12.6(ビットフィールドまたは構造体の圧縮)、12.7(構造体配列)、12.9(プログラミング実習)、実習12-4を解いてみる。
その他参考書籍
- プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)
- プログラミング言語Cアンサー・ブック 第2版 (クロビス・L.トンド、スコット・E.ギンペル(著)、矢吹 道郎(翻訳))
実習12-4.
コード
sample.c
#include <stdio.h>
#include <string.h>
struct ticket{
char flight[100];
char from[4];
char to[4];
struct {
int hour;
int minute;
} start;
struct {
int hour;
int minute;
} arrive;
};
int main()
{
struct ticket tickets[10] = {
{"a", "fgh", "ijk", {10, 20}, {14, 30}},
{"b", "ijk", "fgh", {11, 20}, {15, 30}},
{"c", "fgh", "ijk", {10, 20}, {14, 30}},
{"d", "fgh", "ijk", {11, 20}, {15, 30}},
{"e", "ijk", "fgh", {12, 20}, {16, 30}},
{"f", "ijk", "fgh", {12, 20}, {16, 30}},
{"g", "fgh", "ijk", {13, 20}, {17, 30}},
{"h", "fgh", "ijk", {13, 20}, {17, 30}},
{"i", "fgh", "ijk", {14, 20}, {18, 30}},
{"j", "ijk", "fgh", {14, 20}, {18, 30}}
};
void display(struct ticket t);
int i;
char line[100];
printf("出発空港コードを入力: ");
fgets(line, sizeof(line), stdin);
line[strlen(line) - 1] = '\0';
printf("便のリスト\n");
for (i = 0; i < 10; i += 1){
if (strcmp(line, tickets[i].from) == 0){
display(tickets[i]);
}
}
return (0);
}
void display(struct ticket t)
{
printf("便名: %s\n出発空港コード: %s\n到着空港コード: %s\n",
t.flight, t.from, t.to);
printf("出発時刻: %d:%d\n到着時刻: %d:%d\n",
t.start.hour, t.start.minute, t.arrive.hour, t.arrive.minute);
}
makefile
CC=cc CFLAGS=-g sample: sample.c $(CC) $(CFLAGS) -o sample sample.c clean: rm -f sample
入出力結果(Terminal)
$ make cc -g -o sample sample.c $ ./sample 出発空港コードを入力: fgh 便のリスト 便名: a 出発空港コード: fgh 到着空港コード: ijk 出発時刻: 10:20 到着時刻: 14:30 便名: c 出発空港コード: fgh 到着空港コード: ijk 出発時刻: 10:20 到着時刻: 14:30 便名: d 出発空港コード: fgh 到着空港コード: ijk 出発時刻: 11:20 到着時刻: 15:30 便名: g 出発空港コード: fgh 到着空港コード: ijk 出発時刻: 13:20 到着時刻: 17:30 便名: h 出発空港コード: fgh 到着空港コード: ijk 出発時刻: 13:20 到着時刻: 17:30 便名: i 出発空港コード: fgh 到着空港コード: ijk 出発時刻: 14:20 到着時刻: 18:30 $ ./sample 出発空港コードを入力: ijk 便のリスト 便名: b 出発空港コード: ijk 到着空港コード: fgh 出発時刻: 11:20 到着時刻: 15:30 便名: e 出発空港コード: ijk 到着空港コード: fgh 出発時刻: 12:20 到着時刻: 16:30 便名: f 出発空港コード: ijk 到着空港コード: fgh 出発時刻: 12:20 到着時刻: 16:30 便名: j 出発空港コード: ijk 到着空港コード: fgh 出発時刻: 14:20 到着時刻: 18:30 $ ./sample 出発空港コードを入力: abc 便のリスト $
0 コメント:
コメントを投稿