とあるテキストの問題で質問

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
はぐきさん  
(No.1)
教科書の模擬問題についてわからないところがあるので誰か教えていただけますとありがたいです。※一部変更して記述しています。

配列の要素番号は1から始まる。
手続きConvは10進数のvをk進数に変換し、k進数の1桁ずつ配列cに格納していくプログラム。

<問>
Conv(120,7,c[],n)で呼び出した場合、配列cは「a」でnは「b」で戻る。

<プログラム>
Conv(整数型v,整数型k,整数型c[],整数型n)
整数型 i

i←0
while(i<10 and v not= 0)
  i←i+1
  c[i]←v mod k
  v←v÷k  */小数点以下は切り捨て
endwhile

n←i

c[1]に1,c[2]に3、c[3]に2がはいるのは理解できるのですが、nの戻り値が回答では2となっています。nは3ではないのですか?私のwhileの解釈が間違っているのでしょうか。
2023.03.26 21:47
電タックさん 
FE ブロンズマイスター
(No.2)
誤植だと思います。
試験問題のためプログラムがバグってるは無視したとして

n=ループ回数=桁数

120の7進数=231で3桁

だから
c[]に3要素入れたよという、n=3が関数としての結果になる気がします。
※ちなみにそのままの構文でc言語で動かしてみましたけどやっぱりn=3でした
2023.03.26 22:24
はぐきさん  
(No.3)
電タックさん

返信ありがとうございます。よりによってここが誤植の可能性高・・・笑
認識あっていたようでよかったです!
2023.03.27 09:57

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop