請選擇 進入手機版 | 繼續訪問電腦版

COCO研究院

 找回密碼
 註冊
搜索
查看: 4358|回復: 5

[範例程式碼] 請問有辦法取出陣列內一段區間的最大值嗎

[複製鏈接]
發表於 16-11-26 17:47 | 顯示全部樓層 |閱讀模式
10金錢

請問有辦法取出陣列內一段區間的最大值嗎?
例如我有個陣列 array:TR1[99](0)
我想要找出TR1[5]~TR1[14]的最大值,我會用以下的方式
maxlist(TR1[5],TR1[6],TR1[7],TR1[8],TR1[9],TR1[10],TR1[11],TR1[12],TR1[13],TR1[14]);
但有沒有比較簡潔的方式呢? 不然我如果要找TR1[5]~TR[99]的最大值不就要打一堆
感謝

最佳答案

查看完整內容

看看這樣行不行 Value2 = TR1[0]; for Value1 = 0 to (99-1) begin if TR1[Value1+1] > TR1[Value1] then Value2 = TR1[Value1+1] ; end; Vaule2跑完for迴圈後即為陣列裡元素的最大值 若要找區間的話如同你講的例子一樣 (想要找出TR1[5]~TR1[14]的最大值) 就改成這樣 Value2 = TR1[5]; for Value1 = 5 to (14-1) begin if TR1[Value1+1] > TR1[Value1] then Value2 = TR1[Value1+1] ; end; ...
發表於 16-11-26 17:47 | 顯示全部樓層
本帖最後由 eddie0307 於 16-11-26 23:28 編輯

看看這樣行不行

Value2 = TR1[0];
for Value1 = 0 to (99-1)
begin
    if TR1[Value1+1] > TR1[Value1] then Value2 = TR1[Value1+1] ;
end;

Vaule2跑完for迴圈後即為陣列裡元素的最大值
若要找區間的話如同你講的例子一樣 (想要找出TR1[5]~TR1[14]的最大值)
就改成這樣

Value2 = TR1[5];
for Value1 = 5 to (14-1)
begin
    if TR1[Value1+1] > TR1[Value1] then Value2 = TR1[Value1+1] ;
end;
回復

使用道具 舉報

 樓主| 發表於 16-11-27 10:01 | 顯示全部樓層
eddie0307 發表於 16-11-26 23:16
看看這樣行不行

Value2 = TR1[0];

大大你好~~這樣子應該是可行的~~請問一下大大那段程式碼要怎麼改成函數呢?
回復

使用道具 舉報

發表於 16-11-27 13:24 | 顯示全部樓層
改成函數我想覺得沒必要
因為程式只有幾行
再來就是得處理大型矩陣如何丟到函數的問題
這樣可能會影響程式執行效能
寫成函數的CP值不高
麻煩先確定這幾行code是否work
能work再麻煩打賞小弟一下囉
感謝
回復

使用道具 舉報

發表於 16-11-27 14:02 來自手機 | 顯示全部樓層
Array_sort(TR1,5,14,true) ; 將第5~14數值作第
回復

使用道具 舉報

發表於 16-11-27 14:04 來自手機 | 顯示全部樓層
遞增排序,value1 = TR1[5] ; 區間最小值,value2= TR1[14] 區間最大值
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-3-29 03:04

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 | AI繪圖AI超擬真美女AI beauty AI Stable DiffusionAI正妹AI Lookbook