HOME»基本情報技術者試験掲示板»最大値の探索について
投稿する

最大値の探索について [5426]

 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日経過したスレッドへの投稿はできません。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop