基本情報23年 特別 午後 問9 設問1−2

前回の続き

<<cについて>>

こういうときは、具体的に数値を入れて考えましょう。

1人分を確保しようとしたら、
A席1番目に見つかったという場合。

1人分なのでnumは1です。
check_sheatsのループ

for row=0
cnt=0で
no=0のとき、

if ( hall[0][0]〜) のIF文ですぐにみつかることになる。
そうすると、
if (++ cnt >= num)のところで、
 まず、比較するまえにcntをあげる→cnt=1
 if ( cnt >= num)は、if ( 1 >= 1)のなるので、正しい。
    →(aより)foundを1にしてbreak

 if(fonud != 0 )になるので、break


結局、この状態で、for文の外に出てくる。


現在値
row=0
no=0
num=1です。

cは、今回、A列1番だから Aになればよい。
Aはrow_s[0]、選択肢でなりえるのはrow_s[row]




<<dについて>>

dは、今回、A列1番だから 1になればよい。

1=no-num+?

no=0
num=1だから

1=0−1+?  ?は2になる。つまり no-num+2

【答え】

c キ
d エ