- ベストアンサー
C言語のプログラミング
今、独学でC言語を勉強しています。それで、練習にと思い、損益分岐点計算をC言語で作ってみようと思い、作りました。以下が、私が作ったプログラミングです。 float tanka,hendo,kotei,ryo; printf("単価 ¥"); scanf("%d",&tanka); printf("変動費¥");scanf("%d",&hendo); printf("固定費¥");scanf("%d",&kotei); ryo=kotei/(tanka-hendo); printf("限界利益率は %3.1f%です\n",(1-hendo/tanka)*100); printf("損益分岐点時の販売量は%.0fです\n",ryo); printf("損益分岐点時の売上高は%.0fです\n",kotei/(tanka-hendo)); しかし、実行してみると、最後の「損益分岐点時の売上高」が0になってしまいました。 参考書などの問題ではないので、答えがなくて困っています。どこがおかしいのかが分かる方、ぜひ教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
scanf() で、単価などを float の変数に取り込むには %d ではなく %f を使ってください。 %d では、整数として取り込んでしまいます。
その他の回答 (1)
- charco
- ベストアンサー率0% (0/1)
回答No.2
scanfでのこの手のミスを防ぐために getsとatoi、atofの使用をお勧めしますです。
質問者
お礼
回答ありがとうございました。アドバイス、ありがとうございます。教えていただいたgetsなども、本で調べて、使いこなせるようにします。ありがとうございました。
お礼
回答ありがとうございます。よく見たら、すごい単純ミスで・・・恥ずかしくて申し訳ないです。早速やってみます。