【スポンサーリンク】

【C言語解説】 C言語練習 R017 - 値引きと料金

こちらのサイト

C言語練習
http://www.geocities.jp/kenji_y0328/crenshu/

の問題を実際に解いていったので、「解説」という形でまとめていこうかと思っています。
ちなみに、こちらのサイトでは解答もありますが、自分の解答を元に解説していきます。

※作者様からの削除依頼がありましたらすぐに削除しますのでご報告頂けると幸いです。

カテゴリの「C言語練習」でまとめています。

【問題】

値引き区分、単価、数量を入力する。値引き区分が1のとき5%引き、2のとき10%引き、3のとき15%引き、それ以外は値引きなしとし、金額を算出し表示する。

【コード】

#include<stdio.h>

main(){
    int kubun, tanka, suryo, ritu, kingaku;

    printf("値引き区分="); scanf("%d", &kubun);
    printf("単価="); scanf("%d", &tanka);
    printf("数量="); scanf("%d", &suryo);

    switch(kubun){
        case 1: ritu=5;
            break;
        case 2: ritu=10;
            break;
        case 3: ritu=15;
            break;
        default:ritu=0;
    }
    
    kingaku = tanka*suryo*(100-ritu)/100;
    printf("値引率=%d%%  金額=%d", ritu, kingaku);
    return 0;
}

【考え方】

  • int型の「kubun」「tanka」「suryo」「ritu」「kingaku」を宣言する。
  • 値引き区分を「kubun」に入力する。
  • 単価を「tanka」に入力する。
  • 数量を「suryo」に入力する。
  • 以前の記事にも書きましたが、3つ以上の分岐をしているので switch 文で分岐して、値引率を「ritu」に代入します。
  • 『単価×数量×(100-値引率)÷100』という計算式の元で計算を行い、「kingaku」に代入する。
  • 標準出力で値引率と金額を出力する。

【個人的な意見】

値引き区分を入力する時に「値引き区分=」だけでなく「値引き区分(1=5%、2=10%、3=15%)=」のように簡単に説明を入れておくと良いと思いました。自分の反省点ですね。

こういったところで丁寧に作れないと癖がついてしまい利用者にとって使いにくいものを作りかねません。
気をつけようと思いました。


そして、最後から2行目の出力処理。
『値引率=%d%%とあります。
『%%』は『%』を表示するための記号です。

【スポンサーリンク】