vb求陣列的維數

2021-05-24 23:19:23 字數 753 閱讀 2561

設計思想:

在vb中數姐最大維數是60,所以我們通過錯誤捕捉來處理這個問題,在這裡我們用到ubound函式

public function arrayrange(marray as variant) as integer

dim i as integer

dim ret as integer

dim errf as boolean

errf = false

on error goto errhandle

'判斷代入的引數是否為陣列 

if not isarray(marray) then

arrayrange = -1

exit function

end if

'vb中陣列最大為60

for i = 1 to 60

'用ubound函式判斷某一維的上界,如果大陣列的實際維數時產生超出範圍錯誤,

' 此時我們通過resume next 來捕捉錯這個錯誤

ret = ubound(marray, i)

if errf then exit for

next i

'最後返回

arrayrange = ret

exit function

errhandle:

ret = i - 1

errf = true

resume next

end function

陣列的維數

作為引數或者在二維陣列的宣告時,往往可以省略第一維,但是不可以省略第二維,或者是更高的維數。這是由於編譯器的原理所限制的。a i j a 0 0 i sizeof int n sizeof int 此時 n為二維的維數 由此可以看出在定義二維陣列或更高維陣列時,對其進行初始化可以省略第一維引數,編譯...

求陣列第K大的數

問題 有乙個大小為n的陣列a 0,1,2,n 1 求其中第k大的數。我們先分析原問題 有乙個大小為 n的陣列a 0,1,2,n 1 求其中第k大的數。我們先取特例,令k 1,那麼就是取最大的數,只要掃瞄一遍陣列就可以確定該值,如果k 2,則掃瞄兩邊陣列就可以確定第二大的數,依此類推下去,時間複雜度是...

求陣列中第K大的數

本題的的陣列是可以包含重複元素的,且要求時間複雜度控制在o n 解題思路 陣列中第k大的數等價於排序陣列中第n k個數,直觀的想法是將陣列排序後取第n k個數即可,但是最快的排序演算法時間複雜度也是o nlogn 可以參考快速排序一次劃分的思想,將時間複雜度降低為o n 一次劃分可以講陣列分為三部分...