2017年12月25日月曜日

開発環境

Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の7章(高度な関数 - 関数を最大限に活用する)、エクササイズ(p. 347)を取り組んでみる。

エクササイズ(p. 347)

コード

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

enum drink
{
 MUDSLIDE,
 FUZZY_NAVEL,
 MONKEY_GLAND,
 ZOMBIE
};

double price(enum drink d)
{
 double  p;
 switch (d)
 {
 case MUDSLIDE:
  p = 6.79;
  break;
 case FUZZY_NAVEL:
  p = 5.31;
  break;
 case MONKEY_GLAND:
  p = 4.82;
  break;
 case ZOMBIE:
  p = 5.89;
  break;
 default:
  break;
 }
 return p;
}

double total(int args, ...)
{
 double total = 0;

 va_list ap;
 va_start(ap, args);
 for (size_t i = 0; i < args; i++)
 {
  total += price(va_arg(ap, enum drink));
 }
 va_end(ap);

 return total;
}

int main()
{
 printf("価格は%.2fです\n", total(3, MONKEY_GLAND, MUDSLIDE, FUZZY_NAVEL));

 system("pause");
 return 0;
}

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

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

0 コメント:

コメントを投稿