開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) の12章(高度な型)12.9(プログラミング実習)j実習12-4.を解いてみる。
実習12-4.
コード(TextWrangler)
#include <stdio.h> struct ticket{ char name[10]; unsigned int airport1; unsigned int airport2; char date1[6]; char date2[6]; }; void f(struct ticket t){ printf("便名: %s\n",t.name); printf("出発空港コード: %u\n",t.airport1); printf("到着空港コード: %u\n",t.airport2); printf("出発時刻: %s\n",t.date1); printf("到着時刻: %s\n",t.date2); } int main(){ struct ticket list[10]; char line[10]; unsigned int a,b; int i; struct ticket t1 = { "便名1", 1, 20, "09:00", "12:00" }; struct ticket t2 = { "便名2", 3, 40, "10:00", "13:00" }; struct ticket t3 = { "便名3", 5, 60, "11:00", "14:00" }; struct ticket t4 = { "便名4", 20, 1, "11:00", "14:00", }; struct ticket t5 = { "便名5", 40, 3, "14:00", "16:00", }; list[0] = t1; list[1] = t2; list[2] = t3; list[3] = t4; list[4] = t5; printf("2つの空港コードを入力: "); fgets(line,sizeof(line),stdin); sscanf(line, "%u %u", &a,&b); for( i = 0 ; i < 5 ; i++){ if(list[i].airport1 == a || list[i].airport1 == b){ f(list[i]); printf("\n"); } } return (0); }
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample 2つの空港コードを入力: 1 20 便名: 便名1 出発空港コード: 1 到着空港コード: 20 出発時刻: 09:00 到着時刻: 12:00 便名: 便名4 出発空港コード: 20 到着空港コード: 1 出発時刻: 11:00 到着時刻: 14:00 $ ./sample 2つの空港コードを入力: 3 4 便名: 便名2 出発空港コード: 3 到着空港コード: 40 出発時刻: 10:00 到着時刻: 13:00 $ ./sample 2つの空港コードを入力: 5 40 便名: 便名3 出発空港コード: 5 到着空港コード: 60 出発時刻: 11:00 到着時刻: 14:00 便名: 便名5 出発空港コード: 40 到着空港コード: 3 出発時刻: 14:00 到着時刻: 16:00 $
久々に標準入出力もあったけど、こんな感じでいいのかな。。
0 コメント:
コメントを投稿