• ベストアンサー

インクリメント

情報処理の問題で一つわからない点があります http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H19a2/pm10.html 上記HPの「 d 」の答えなのですが rank++ と rank = i + 1 答えはどちらでもかまわないのではないでしょうか? インクリメントを使っての答えは間違いとなりますがどうして??? 教えてください

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

  • ベストアンサー
  • i-kujou
  • ベストアンサー率50% (13/26)
回答No.1

実行してみればわかるだろうけど、勝率が同一のチームが存在した場合にrank++だとそれより下位の順位がずれる。 例えば、チームAとチームBの勝率が0.5、チームCの勝率が0だった場合、rank = i+1だと 1位 チームA 1位 チームB 3位 チームC となるけど、rank++だと 1位 チームA 1位 チームB 2位 チームC ってなっちゃう。通常、順位付けは上の方式で行われるからrank++は×

xxxcocoxxx
質問者

お礼

通常の順位付け。。。 そうですね、同一の値だとその次の順位は飛ばされるんですよね☆ 完璧なお答えでよくわかりました。ありがとうございます!!!

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

rank++ と rank = i + 1 の2つは異なります、 ------------------------------------------------------------ rank++ は、 rankに1を加える。 rank = i + 1 は、rankに i+1を代入する。 ------------------------------------------------------------ ということで、この場合rank++ を書き換えると、 rank = rank + 1 と言う事になります。

xxxcocoxxx
質問者

お礼

i に値をプラスするのか、rank に値をプラスるるかの違いを問題によって把握しないといけないですね。 よくわかりました、ありがとうございます!

関連するQ&A