• ベストアンサー

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になってしまいました。 参考書などの問題ではないので、答えがなくて困っています。どこがおかしいのかが分かる方、ぜひ教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

scanf() で、単価などを float の変数に取り込むには %d ではなく %f を使ってください。 %d では、整数として取り込んでしまいます。

hinahina0111
質問者

お礼

回答ありがとうございます。よく見たら、すごい単純ミスで・・・恥ずかしくて申し訳ないです。早速やってみます。

その他の回答 (1)

  • charco
  • ベストアンサー率0% (0/1)
回答No.2

scanfでのこの手のミスを防ぐために getsとatoi、atofの使用をお勧めしますです。

hinahina0111
質問者

お礼

回答ありがとうございました。アドバイス、ありがとうございます。教えていただいたgetsなども、本で調べて、使いこなせるようにします。ありがとうございました。

関連するQ&A