程式設計基礎(虛擬碼追蹤)
陣列的元素編號從1開始。下列程式尋找最大的元素。執行後 m 的值為下列何者?
整數型陣列: a ← {3, 8, 2, 8, 5}
整數型: m ← 1
for (i 從 2 到 5 每次加 1)
if (a[i] > a[m])
m ← i
endif
endfor
- A2
- B4
- C8
查看答案與解析
正確答案:A. 2
m 是到目前為止看過的最大元素的元素編號。i = 2 時 a[2] = 8 > a[1] = 3,因此 m = 2。i = 4 時 a[4] = 8 與 a[2] = 8 相等,> 不成立,m 不變。因此最大值有多個時,會留下最先出現的元素編號2。若把條件改成 ≧,則會變成最後出現的元素編號4。
- A. 正確。相等時不更新 m,因此留下第一個最大值的元素編號2。
- B. 這是條件為 a[i] ≧ a[m] 時的結果。
- C. 這是最大值本身。指派給 m 的是元素編號。