#2
by usao » 4年前
「どう直す」じゃなくて,まずは実現するための手続きをまともに考えてみたらどうか.
5x5個の箱と,25個の何かが存在するときに,箱に1個ずつ入れるとしたらどうやるのか?
* あなたの提示したコードは3重のループが書かれているが,本当に3重ループになる手続きを考え付いたのだろうか?
例えば以下の2種類の手続きが考えられるとして,どちらでも良いから「その通りに」実装すればよい.
(1)aの25個の要素に関して,以下を行う.
aのm番目の要素に関して,これをbのどこに格納すれば良いのか(i,j)を判断する.
そして,bのその場所(i,j)に,aのm番目の要素の値を代入する.
(2)bの25個の要素に関して,以下を行う.
bの場所(i,j)に関して,ここにaのどの要素を格納すれば良いのかを判断する.
m番目だと判断したならば,このbの場所(i,j)に,aのm番目の要素の値を代入する.
* あなたの提示したコードには上記の「判断」に対応するような処理が見当たらないのが不思議だ.
「どう直す」じゃなくて,まずは実現するための手続きをまともに考えてみたらどうか.
5x5個の箱と,25個の何かが存在するときに,箱に1個ずつ入れるとしたらどうやるのか?
* あなたの提示したコードは3重のループが書かれているが,本当に3重ループになる手続きを考え付いたのだろうか?
例えば以下の2種類の手続きが考えられるとして,どちらでも良いから「その通りに」実装すればよい.
(1)aの25個の要素に関して,以下を行う.
aのm番目の要素に関して,これをbのどこに格納すれば良いのか(i,j)を判断する.
そして,bのその場所(i,j)に,aのm番目の要素の値を代入する.
(2)bの25個の要素に関して,以下を行う.
bの場所(i,j)に関して,ここにaのどの要素を格納すれば良いのかを判断する.
m番目だと判断したならば,このbの場所(i,j)に,aのm番目の要素の値を代入する.
* あなたの提示したコードには上記の「判断」に対応するような処理が見当たらないのが不思議だ.