• ベストアンサー

なぜこんなことに!?プログラム課題

はじめまして。 C言語プログラムのことでわからないことがあり、みなさんの知恵を貸していただけないでしょうか?? int a = 3; int b = -5; int c = a / b; printf("a/b = %d\n", c); これを実行すると a/b = 0 となってしまいます! これはなぜなのでしょうか?? 頭が悪くて、恐縮ですが、好きな女の子に聞かれたときに きちんと答えて、かっこいいところを見せたいのです! みなさんのお力を貸していただければ幸いです。 よろしくお願い致します。

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

  • ベストアンサー
  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.2

cがint(整数)なのと、書式の%dが整数表記だから。 float、%fにすれば期待する答えが表示されるでしょう。 きちんと答えられても、このくらいじゃかっこいいと思われるかどうか‥‥?

sutekicut
質問者

お礼

ですよねw まぁちょっとずつ攻めていきますです! %dのことについても教えて頂きまして、ありがとうございました。 2つの知識を教えて頂きました。

その他の回答 (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 と出てきますよ。

sutekicut
質問者

お礼

最初に回答して頂いてありがとうございます! おかげできちんと答えられそうです! FEX2053さんをベストアンサーにするつもりでしたが、 お礼をしようと考えていた瞬間に新しい回答をいただいたので・・・ 本当にありがとうございました!

関連するQ&A