苦CというサイトでC言語を勉強している初心者です。そして問題として次の内容が出てきました。
1本198円の清涼飲料水1本と、1本138円の牛乳2本を購入し、千円札で払った場合のお釣りを求めよ。ただし、5%の消費税を追加し、お釣りの額は整数とする。なお、消費税を四捨五入するかどうかは自由とする。
すると、解答は次のようでした。
#include <stdio.h> int main(void) { int juice, milk, money, payment, change; double tax; juice = 198; milk = 138; money = 1000; tax = 1.05; payment = (int)((juice + milk * 2) * tax); change = money - payment; printf("%d円\n", change); return 0; }
表示結果は以下のようです。
503円
しかし、これはおかしくないでしょうか?
消費税が切り捨ての場合、(198×1.05)+({138×1.05}×2) =207+(144×2) =207+288=495 1000円出すとお釣りは505円
消費税が四捨五入(切り上げ)の場合、(198×1.05)+({138×1.05}×2) =208+(145×2) =498 1000円出すとお釣りは502円
……だと思うので、503円となるのがよくわかりません。このプログラムが正しいのかどうか、もしくは自分が何を勘違いしているのかを、お教えください。よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー