看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《ssblack (小黑 )》之銘言: : 目前在寫程式碼時遇到一些困難想來這邊請教一下各位高手 : 假設 : A B C D : t=1 2 3 4 6 : t=2 5 7 3 8 : t=3 5 8 4 1 : t=4 2 4 3 5 : 我在t=1的時候希望可以選取A到D最大者 故我可以用MAX函數 : 但是T=2的時候要選取排除前一期最大者之後剩下的三期最大者 : 也就是MAX(A,B,C)=C : T=3的時後依此類推 MAX(A,B)=B : T=4就只剩下A了.... : 請問我該如何撰寫?? : 我有想到 是不是可以用IF函數 還是CASE函數??@@ 用那些方法寫起來並不容易,寫出來也看不懂 我以一個陣列 item(k) as integer 為例,資料在 item(1..k) 另外宣告一個 valid(k) as boolean 1: 把 valid(1..k) 全設為true 2: 對i=1..k, 找出最大的 item(i), 但是同時要檢查 valid(i) valid(i)=true 那麼 item(i) 才為合法的最大值 最後設 valid(i)=false 說不仔細,程式如下 for L=1 to k if valid(L) then exit for ' 尋找第一個 valid item next L mx=n(L) ' 把最大值設為第一個 valid item mxi=L ' 並記錄最大值位置 for i=L+1 to k if valid(i) and item(i)>mx then ' ** mx=item(i) ' ** 找最大值 mxi=i ' ** 並記錄最大值位置 end if ' ** next i valid(mxi)=false ' 下次執行時排除 item(i) 3: 重覆執行,最後就是你要的   -- BATCH 03 : 買張床 - 切達大俠 - 伐木人之歌 - http://tinyurl.com/3zpyx5 [B4準備中]: 謳歌金錢(7/02) - 單車超人(7/23) - http://tinyurl.com/66v6vq [ 番外篇 ]: 包租婆也有過當羅莉的時候(7/17) - http://tinyurl.com/6j4ale ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 蒙帝派松正體中文計畫 Spam-a-lot and enjoy the pythonesque delight! ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ http://www.youtube.com/user/JamesBondXD▄▄ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.214.226