2017年12月14日木曜日

開発環境

Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の5章(構造体、共用体、ビットフィールド - 独自の構造を使う)、コードマグネット(p. 256)を取り組んでみる。

コードマグネット(p. 256)

コード

#include <stdlib.h> // sytem
#include <stdio.h>

typedef enum
{
 COUNT, POUNDS, PINTS
} unit_of_measure;

typedef union
{
 short count;
 float weight;
 float volume;
} quantity;

typedef struct
{
 const char *name;
 const char *country;
 quantity amount;
 unit_of_measure units;
} FruitOrder;

void display(FruitOrder order)
{
 printf("この注文に含まれるものは");

 if (order.units == PINTS)
  printf("%2.2fパイントの%sです。\n", order.amount.volume, order.name);
 else if (order.units == POUNDS)
  printf("%2.2fポンドの%sです。\n", order.amount.weight, order.name);
 else
  printf("%i個の%sです。\n", order.amount.count, order.name);
}

int main()
{
 FruitOrder apples = { "リンゴ", "イギリス" };
 apples.amount.count = 144;
 apples.units = COUNT;

 FruitOrder strawberries = { "いちご", "スペイン" };
 strawberries.amount.weight = 17.6;
 strawberries.units = POUNDS;

 FruitOrder oj = { "オレンジジュース", "アメリカ" };
 oj.amount.volume = 10.5,
  oj.units = PINTS;

 display(apples);
 display(strawberries);
 display(oj);

 system("pause");
 return 0;
}

入出力結果(コマンドプロンプト)

この注文に含まれるものは144個のリンゴです。
この注文に含まれるものは17.60ポンドのいちごです。
この注文に含まれるものは10.50パイントのオレンジジュースです。
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿