2017年12月13日水曜日

開発環境

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

混乱したミキサー(p. 250)

コード

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

typedef union
{
 float lemon;
 int lime_pieces;
} LemonLime;

typedef struct
{
 float tequila;
 float cointreau;
 LemonLime citrus;
} Margarita;

int main()
{
 /*エラーになる
 Margarita m = { 2.0, 1.0,.citrus.lemon = 2 };*/

 Margarita m1 = { 2.0, 1.0 };
 m1.citrus.lemon = 2;
 printf("%2.1f単位のテキーラ\n%2.1f単位のコアントロー\n%2.1f単位のジュース\n",
  m1.tequila, m1.cointreau, m1.citrus.lemon);
 puts("");

 Margarita m2 = { 2.0, 1.0, {0.5} };
 printf("%2.1f単位のテキーラ\n%2.1f単位のコアントロー\n%2.1f単位のジュース\n",
  m2.tequila, m2.cointreau, m2.citrus.lemon);
 puts("");

 Margarita m3 = { 2.0, 1.0 };
 m3.citrus.lime_pieces = 1;
 printf("%2.1f単位のテキーラ\n%2.1f単位のコアントロー\n%i切れのライム\n",
  m3.tequila, m3.cointreau, m3.citrus.lime_pieces);
 puts("");

 system("pause");
 return 0;
}

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

2.0単位のテキーラ
1.0単位のコアントロー
2.0単位のジュース

2.0単位のテキーラ
1.0単位のコアントロー
0.5単位のジュース

2.0単位のテキーラ
1.0単位のコアントロー
1切れのライム

続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿