最大値の探索について

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
tepさん  
(No.1)
下記の問題、回答の根拠を教えて頂きたいです。
問題  プログラムは、N個の要素を持つ配列A
【0】〜A【N-1】に格納された整数値の中から最大値を求めて返却する。

プログラム
整数型  Getmax
整数型  i,max
Max←A【0】
i←1
while(iがNより小さい)
  if(⬜︎)
    max←A【i】
   endif 
   i←i+1
endwhile
return max

⬜︎の中の回答は、A【i】がmaxより大きい

でした。
トレースすると、これは間違いではないのですが、
A【i】がA【i-1】より大きい
も間違いではないと思うのですがいかがでしょうか?
2024.05.02 14:48
フライドライスさん 
(No.2)
「A【i】がA【i-1】より大きい」が条件ですと、例えばプログラムの途中で
maxが5,  A[i]が3,  A[i-1]が2  の時に条件が成立し、
もともと5が入っていたmaxに3が代入されてしまうため、最大値を返せなくなってしまいます。
2024.05.02 18:28
tepさん  
(No.3)
ありがとうございました。
理解できました。勝手に、格納された整数値を昇順にしていました。この場合だとどちらも正解ですが、昇順の記載はないため、仰られる通りmaxの更新が出来なくなりますね。
2024.05.03 09:31

返信投稿用フォーム

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

その他のスレッド


Pagetop