プロが教える店舗&オフィスのセキュリティ対策術

c言語のプログラミングについての質問なのですが、
定価と消費税率(%)を引数として税込価格を返すprice関数を作成せよ。定価はint型、税率と税込価格はdouble型とする。main関数内でprice関数を呼び出し税込価格をけいさんさせる。price関数はmain関数の後に記述すること。
という問題で私は定価100円、税率10%とし、写真のようなプログラムを作成したのですが、これを実行すると、税込価格が0円と表示されてしまいます。どう解決すればいいのかわからないのでわかる方がいたら解説お願いします。

「c言語のプログラミングについての質問なの」の質問画像

A 回答 (3件)

修正点は2つ。



(1)price関数の宣言のvoidをdoubleに変更

(2)main()内でprice関数を呼び出すときに、戻り値を変数に入れないと次の行のprintf()で活かせない

(例)
double inctax; // 税込価格
 :
inctax = price(lp, tr); // 変数inctaxを次の行のprintf()に与える
printf("定価%d円, 税率%f%%, 税込み価格%f円\n", lp, tr, inctax); // 税率の%の文字を表示するには%%と表記する
    • good
    • 0
この回答へのお礼

どこがどのように間違っているのか丁寧にしてしていただきありがとうございます。おかげでうまく実行することができました。一番わかりやすかったのでベストアンサーに選ばせていただきます。

お礼日時:2020/06/12 00:50

price関数の戻り値がvoidになってますね


voidをdoubleに書き換えましょう
    • good
    • 0
この回答へのお礼

自分では気づけませんでした。ご指摘ありがとうございます。

お礼日時:2020/06/12 00:50

○ void 型の関数には戻り値はありません。


return の後に値を書いても、エラーにはなりません(警告になります)が、無意味です。
    • good
    • 0
この回答へのお礼

なぜvoidだとうまくいかないのかの説明がわかりやすくありがたいです。回答ありがとうございます。

お礼日時:2020/06/12 00:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


人気Q&Aランキング