2014年2月16日日曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の7章(高度な関数)、エクササイズ(p.347)を解いてみる。

その他参考書籍

エクササイズ(p.347)

コード(BBEdit, Emacs)

sample347.c

#include <stdio.h>
#include <stdarg.h>

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

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

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

int main(int argc, char *argv[])
{
    printf("価格は%.2fです\n", total(3, MONKEY_GLAND, MUDSLIDE, FUZZY_NAVEL));
    printf("価格は%.2fです\n",
        total(4, MONKEY_GLAND, MUDSLIDE, FUZZY_NAVEL, MONKEY_GLAND));

    return (0);
}

Makefile

sample347: sample347.c
 cc -g -o sample347 sample347.c

clean:
 rm sample347

入出力結果(Terminal)

$ make && ./sample347
cc -g -o sample347 sample347.c
価格は16.92です
価格は21.74です
$

0 コメント:

コメントを投稿