計算機科学のブログ

C - 複数のソースファイルの使用 - 分割して構築する - 数値, データ型

Head First C ―頭とからだで覚えるCの基本David Griffiths(著)、 Dawn Griffiths(著)、 中田 秀基(監修)、 木下 哲也(翻訳)、 O’Reilly Media)の 4章(複数のソースファイルの使用 - 分割して構築する)、p.165(エクササイズ)の解答を求めてみる。

コード

main.c

#include <stdio.h>

float total = 0;
short count = 0;
short tax_percent = 6;
float add_with_tax(float f)
{
    float tax_rate = 1 + tax_percent / 100.0;
    total += (f * tax_rate);
    count++;
    return total;
}
int main(int argc, char const *argv[])
{
    float val;
    printf("品目の値段:");
    while (scanf("%f", &val) == 1)
    {
        printf("ここまでの合計:%.2f\n", add_with_tax(val));
        printf("品目の値段:");
    }
    printf("\n最終合計:%.2f\n", total);
    printf("品目数:%hi\n", count);
    return 0;
}

入出力結果(Terminal, Zsh)

% cc main.c && ./a.out
品目の値段:100
ここまでの合計:106.00
品目の値段:10
ここまでの合計:116.60
品目の値段:200
ここまでの合計:328.60
品目の値段:50
ここまでの合計:381.60
品目の値段:11111
ここまでの合計:12159.26
品目の値段:^D
最終合計:12159.26
品目数:5
%