- ベストアンサー
インクリメント
情報処理の問題で一つわからない点があります http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H19a2/pm10.html 上記HPの「 d 」の答えなのですが rank++ と rank = i + 1 答えはどちらでもかまわないのではないでしょうか? インクリメントを使っての答えは間違いとなりますがどうして??? 教えてください
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
実行してみればわかるだろうけど、勝率が同一のチームが存在した場合にrank++だとそれより下位の順位がずれる。 例えば、チームAとチームBの勝率が0.5、チームCの勝率が0だった場合、rank = i+1だと 1位 チームA 1位 チームB 3位 チームC となるけど、rank++だと 1位 チームA 1位 チームB 2位 チームC ってなっちゃう。通常、順位付けは上の方式で行われるからrank++は×
その他の回答 (1)
- auty
- ベストアンサー率58% (284/486)
rank++ と rank = i + 1 の2つは異なります、 ------------------------------------------------------------ rank++ は、 rankに1を加える。 rank = i + 1 は、rankに i+1を代入する。 ------------------------------------------------------------ ということで、この場合rank++ を書き換えると、 rank = rank + 1 と言う事になります。
お礼
i に値をプラスするのか、rank に値をプラスるるかの違いを問題によって把握しないといけないですね。 よくわかりました、ありがとうございます!
お礼
通常の順位付け。。。 そうですね、同一の値だとその次の順位は飛ばされるんですよね☆ 完璧なお答えでよくわかりました。ありがとうございます!!!