開発環境
- 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 コメント:
コメントを投稿