C - 複数のソースファイルの使用 - 分割して構築する - 数値, データ型 1
Head First C ―頭とからだで覚えるCの基本、 David Griffiths(著)、 Dawn Griffiths(著)、 中田 秀基(監修)、 木下 哲也(翻訳)、 O’Reilly Media)の4章(複数のソースファイルの使用 - 分割して構築する)、p.165(エクササイズ)の解答を求めてみる。
Makefile
all:
cc main.c && ./a.out
コード
main.c
#include <stdio.h>
float total = 0.0;
short count = 0;
int tax_percent = 6;
float add_with_tax(float f)
{
float tax_rate = 1 + tax_percent / 100.0;
total = total + (f * tax_rate);
count++;
return total;
}
int main()
{
float val;
printf("品目の値段: ");
while (scanf("%f", &val) == 1)
{
printf("ここまでの合計:%.f\n", add_with_tax(val));
printf("品目の値段: ");
}
printf("\n最終合計: %.f\n", total);
printf("品目数: %hi\n", count);
}
入出力結果(Terminal, Zsh)
% make
cc main.c && ./a.out
品目の値段: 100
ここまでの合計:106
品目の値段: 200
ここまでの合計:318
品目の値段: 150
ここまでの合計:477
品目の値段: 0
ここまでの合計:477
品目の値段: ^D
最終合計: 477
品目数: 4
%