- ベストアンサー
なぜこんなことに!?プログラム課題
はじめまして。 C言語プログラムのことでわからないことがあり、みなさんの知恵を貸していただけないでしょうか?? int a = 3; int b = -5; int c = a / b; printf("a/b = %d\n", c); これを実行すると a/b = 0 となってしまいます! これはなぜなのでしょうか?? 頭が悪くて、恐縮ですが、好きな女の子に聞かれたときに きちんと答えて、かっこいいところを見せたいのです! みなさんのお力を貸していただければ幸いです。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
cがint(整数)なのと、書式の%dが整数表記だから。 float、%fにすれば期待する答えが表示されるでしょう。 きちんと答えられても、このくらいじゃかっこいいと思われるかどうか‥‥?
その他の回答 (1)
- FEX2053
- ベストアンサー率37% (7991/21371)
回答No.1
int は、整数処理だからですよね。 a / b は-0.6ですから、切り捨ててゼロになっちゃうんです。 もし、 int a = 30; int b = 5; int c = a / b; printf("a/b = %d\n", c); にすれば a/b=6 と出てきますよ。
質問者
お礼
最初に回答して頂いてありがとうございます! おかげできちんと答えられそうです! FEX2053さんをベストアンサーにするつもりでしたが、 お礼をしようと考えていた瞬間に新しい回答をいただいたので・・・ 本当にありがとうございました!
お礼
ですよねw まぁちょっとずつ攻めていきますです! %dのことについても教えて頂きまして、ありがとうございました。 2つの知識を教えて頂きました。