2012年10月20日土曜日

開発環境

『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の12章(高度な型)12.9(プログラミング実習)実習12-4を解いてみる。

実習12-4.

コード(TextWrangler)

#include <stdio.h>
#include <string.h>

struct ticket{
  char flight[100];
  char d[4];
  char a[4];
  char dtime[6];
  char atime[6];
};

void p(struct ticket t);

int main(){
  int i;
  const int size = 4;
  char line[100], d1[4], d2[4];
  struct ticket t1 = {
    "便名1",
    "abc",
    "def",
    "10:00",
    "15:00"
  };
  struct ticket t2 = {
    "便名2",
    "abc",
    "ghi",
    "11:00",
    "16:00"
  };
  struct ticket t3 = {
    "便名3",
    "def",
    "abc",
    "10:00",
    "15:00"
  };
  struct ticket t4 = {
    "便名4",
    "ghi",
    "def",
    "11:00",
    "16:00"
  };
  struct ticket ts[size] = {t1, t2, t3, t4};
  printf("出発空港コードを2つ(xxx xxx)入力: ");
  fgets(line,sizeof(line),stdin);
  sscanf(line, "%s %s", d1, d2);
  for(i = 0; i < size; i++){
    if(strcmp(d1, ts[i].d) == 0 || strcmp(d2, ts[i].d) == 0){
      p(ts[i]);
    } 
  }
  return (0);
}

void p(struct ticket t){
  printf("便名: %s\n出発空港コード: %s\n到着空港コード: %s\n出発時刻: %s\n到着時刻: %s\n",
    t.flight, t.d, t.a, t.dtime, t.atime);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
出発空港コードを2つ(xxx xxx)入力: abc ghi
便名: 便名1
出発空港コード: abc
到着空港コード: def
出発時刻: 10:00
到着時刻: 15:00
便名: 便名2
出発空港コード: abc
到着空港コード: ghi
出発時刻: 11:00
到着時刻: 16:00
便名: 便名4
出発空港コード: ghi
到着空港コード: def
出発時刻: 11:00
到着時刻: 16:00
$

0 コメント:

コメントを投稿