最大値の探索について
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】より大きい
も間違いではないと思うのですがいかがでしょうか?
問題 プログラムは、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が代入されてしまうため、最大値を返せなくなってしまいます。
maxが5, A[i]が3, A[i-1]が2 の時に条件が成立し、
もともと5が入っていたmaxに3が代入されてしまうため、最大値を返せなくなってしまいます。
2024.05.02 18:28
tepさん
(No.3)
ありがとうございました。
理解できました。勝手に、格納された整数値を昇順にしていました。この場合だとどちらも正解ですが、昇順の記載はないため、仰られる通りmaxの更新が出来なくなりますね。
理解できました。勝手に、格納された整数値を昇順にしていました。この場合だとどちらも正解ですが、昇順の記載はないため、仰られる通りmaxの更新が出来なくなりますね。
2024.05.03 09:31
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告