なかなかイメージしづらい難問ですね。
二次元配列に対してfor文を回すとき、iやjのカウンタが加算されていくときは、行としては上から下、同じ行なら左から右へ処理が進んでいきます。
なので、iは行方向へのカウンタ、jは列方向のカウンタです。
プログラム中に出力とありますが、どこにどういう順番で出力されるかは書いていません。
for文を見ると一文字づつ出力するのですが、出力先は書かれていません。
この場合、j(内側のカウンタ)が増えると左に進む。i(外側のカウンタ)が増えると改行されると考えてください。
(あくまでもイメージです。実際には出力の実装次第です。他の二次元配列を用意してそこに格納するのかもしれません)
さて比較的簡単な左右反転の空欄bから解きます。
なぜ簡単かというと、行は変わらないためです。
また、問題を単純化して8行6列ではなく2行3列で考えます。(別に3行2列でもいいのですが)
RSZは3、CSZは2になります。
配列inはこんなヤツになります。設問のように#じゃわかりにくいので数値データを入れましょう。
00,01,02
10,11,12
左右反転すると
02,01,00
12,11,10
ですね。
左右反転の場合、行は変わらないと書きました。つまりin[i][なにかの法則]の形式になります。
なにかの法則ですが、j=0の時は、in[i][2]を出力したい、j=1の時はin[i][1]を出力したい、j=2の時はin[i][0]を出力したいことになります。
すると、3-j-1でうまくいきそうです。お誂え向きにRSZ=3なので、
空欄bはin[i][RSZ-j-1]となります。
次に左90度回転を考えます。
02,12
01,11
00,10
ですね。順番に考えてみましょう。
for文で
i=0でj=0の時はin[0][2]、i=0でj=1の時はin[1][2]を出力したい。
i=1でj=0の時はin[0][1]、i=1でj=1の時はin[1][1]を出力したい。
i=2でj=0の時はin[0][0]、i=2でj=1の時はin[1][0]を出力したい。
ということになります。
すると、jが0のとき、in[0][何かの法則]、J=1の時はin[1][何かの法則]となっていることに気づきます。
つまり空欄aはin[j][何かの法則]となります。
何かの法則ですが、
なにかの法則ですが、i=0の時は、in[j][2]を出力したい、i=1の時はin[j][1]を出力したい、i=2の時はin[j][0]を出力したいことになります。
さっき見ましたね。今度は3-i-1でうまくいきそうです。お誂え向きにRSZ=3なので、
空欄aはin[j][RSZ-i-1]となります。
これは頭の中では解けないですね。単純化して紙に書いて法則を見つけるようにしましょう。