✨ คำตอบที่ดีที่สุด ✨
こんにちは。高校生にしては難易度高めの問題でしたね。
プログラム見て、i, j などに値を当てはめて動かしたら、
このプログラムの目的や変数(i, j, tempなど)の意味など、
理解の幅を広げると何をやっているのか、理解出来ますよ。
まず、値を入れる変数にi, jという文字列を使うのは、
情報のプログラミングにおいて共通の認識です。
そして、i, j がともに変数の場合、繰り返しが2重化されているというのが大抵のケースです。
繰り返しが2重化されているというのは、
今まで、iだけ0->1->2->3と見てればよかったものが、
iが0 ->1 ->2 ...end
jが0->1->2->3->0->1->2->3->0->1->2->3...end
のように、繰り返しの2段階の処理になるということです。
(ここは、理解するのに結構時間と慣れが必要になります)
また、変数tempというのは、temporary(一時的な)のことで、
aとbの値を交換したい時に、a=bのように1行では出来ないので、
temp = a
a = b
b = temp
と3行使うのが常套手段です。
要するにtempは一時的に必要になるメモリという意味で、
「値を交換する処理」と考えて下さい。
ここまで、分かると何をやっているかというと、大きい数をお互いに交換し合うことで、
一番大きい数を求めるということです。
そして、一番わからないところについて、j=3のとき、(5)~(7)が実行されない理由は、
最大の数(82)が先頭に届いたことで、処理が完了したからです。
丁寧に説明して下さりありがとうございます!!🙇♀️🙇♀️