如何知道動態陣列中是否有元素(50 磅)。

發布 科技 2024-04-14
21個回答
  1. 匿名使用者2024-02-07

    動態陣列一般都有元素,只要你用redim,那麼就一定有元素。

    如果確實需要判斷,請使用 isempty 函式。

    操作步驟如下。 private sub form_load()dim amsgbox isempty(a)end sub

    返回 true。

    操作步驟如下。 private sub form_load()dim aredim a(0)

    msgbox isempty(a)

    end sub

    返回 false。

    所以你可以看到,只要你使用redim,不管它有多大,都有元素。 只有在宣告動態陣列 (dim) 之後,並且在使用 redim 之前,陣列才沒有元素。

  2. 匿名使用者2024-02-06

    呵呵,我不知道該怎麼判斷,平時我定義乙個全域性icount變數來記錄動態陣列的數量,有時候需要清除a()的資料,但是只能用redim a(0),其實這個操作之後裡面就沒有資料了,這個時候我通常把icount設定為-1, 用來標記 a() 沒有任何元素,用 ** 來控制 icount 和 a(),這樣你就知道 a() 有沒有資料,有多少資料。

    這是乙個愚蠢的想法,但到目前為止我還沒有找到直接的判斷,至於是空的,我根本無法判斷。

    dim a()

    redim a(1)

    a(0) = 1

    msgbox isempty(a) “返回 false,但我已經分配了乙個值。

    redim a(0)

    msgbox isempty(a)< - 這裡也返回了 false,所以無法分辨。

  3. 匿名使用者2024-02-05

    在這種情況下,最好用集合來解決它,陣列無法確定是否有元素!

    dim x as new collectionif then msgbox"沒有元素"

    就是這樣!

  4. 匿名使用者2024-02-04

    我有乙個更好的方法,你可以通過乙個函式來判斷,方便快捷,放在公共模組中可以隨心所欲地使用它。

    function isarrayempty(a) as boolean

    on error resume next

    b = lbound(a)

    isarrayempty =

    end function

  5. 匿名使用者2024-02-03

    目前唯一的辦法是:

    option explicit

    dim a()

    private sub command1_click()static i as integer

    redim preserve a(i)

    a(i) = i

    print a(i)

    i = i + 1

    end sub

    private sub command2_click()on error goto errarr

    msgbox "陣列,最大下標為" & ubound(a)exit sub

    errarr:

    msgbox "陣列未初始化。 "

    end sub

  6. 匿名使用者2024-02-02

    這也是判斷錯誤陷阱的好方法:

    這是完全正確的。

    private sub command2_click()on error goto 1

    dim ii = ubound(a)

    msgbox "陣列不為空! "

    exit sub

    msgbox "陣列為空! "

    end sub

  7. 匿名使用者2024-02-01

    目前唯一的辦法是:

    option explicit

    dim a()

    private sub command1_click()static i as integer

    redim preserve a(i)

    a(i) =i

    print a(i)

    i = i + 1

    end sub

    private sub command2_click()on error goto errarr

    msgbox "陣列,最大下標為" &ubound(a)exit sub

    errarr:

    msgbox "陣列未初始化。

    end sub

  8. 匿名使用者2024-01-31

    dim a() 如果在這裡刪除 (),下面的句子 redim preserve 是有問題的。

    private sub command1_click()static i as integer

    redim preserve a(i) '我不知道動態陣列有多大,所以我必須使用 preserve

    a(i) =i

    print a(i)

    i = i + 1

    end sub

    private sub command2_click()on error goto 1

    dim ii = ubound(a)

    msgbox "陣列不為空! "

    exit sub

    msgbox "陣列為空! "

    end sub

  9. 匿名使用者2024-01-30

    下面給大家乙個**,具體看一下註解:

    #include

    include 需要包含此標頭檔案,該檔案稍後由 malloc 庫函式使用。

    void main()

  10. 匿名使用者2024-01-29

    C,那行不通。

    只能使用記憶體的動態分配。

    int *a;

    a = (int *)malloc(sizeof(int)*n);

    c++int *a = new int[n];

  11. 匿名使用者2024-01-28

    預設值為 0,因此我們定義的所有陣列都從 0 開始,如果將其設定為選項基數 1,則陣列的第乙個元素為 1

    即:選項庫 0

    dim atest(2) '第乙個元素是 atest(0)option base 1

    dim atest(2) '第乙個元素是 atest(1)。

  12. 匿名使用者2024-01-27

    例如,最初,宣告陣列的預設最小下標是 0。

    dim s(5)as string

    總共有 6 個元素。

    我用過它。 option base 1

    之後,dim s(5)作為字串

    只有 5 個元素。

  13. 匿名使用者2024-01-26

    將基數設定為 1,這意味著陣列的第乙個元素是 stu(1)。

  14. 匿名使用者2024-01-25

    為什麼批註都是亂碼? 將其複製到 VC 並刪除注釋。 未指定語言型別,因此是用 C 語言製作的。

    #include

    #include

    #include

    void swap(int *a, int *b)void array(int *arr, int n) 氣泡排序。

    for(i = 0; i < n; i++)int main()

    free(arr);

    return 0;}

  15. 匿名使用者2024-01-24

    這是我的答案。

    dim n as integer

    dim b() as integer '你的老師告訴你要填空,所以不要把兩句話合併成一句話。

    n = 0for i = 1 to 10

    if a(i) <80 then

    n = n + 1

    redim preserver b(n) '在樓上,不加法的結果是,每次重新調整時,所有以前的值都被清除為 0

    b(n) =a(i)

    end if

    next i

    print

  16. 匿名使用者2024-01-23

    dim n as integer, b() as integern = 0for i = 1 to 10

    if a(i) <80 then

    n = n + 1

    redim preserve b(n) '請注意 preserver 引數,更改陣列的維度不會破壞陣列的內容。

    b(n) =a(i)

    end if

    next i

  17. 匿名使用者2024-01-22

    一維陣列迴圈移位不可靠,最好使用佇列。 佇列函式的位置如下圖所示。

    其工作原理如下:

    1) 在 while 迴圈收集資料之外建立乙個佇列引用,並將佇列大小設定為 100

    2)在迴圈中,使用“列中有損元素”將資料傳送到佇列中。

    3)獲取佇列狀態,取出佇列中的元素,做平均值。

    4) 當 while 迴圈結束時,佇列引用在 while 迴圈之外釋放。

    請參見下面的螢幕截圖。

    當佇列達到設定的大小時,新資料將被推送出去,例如,當第 101 個元素被登記時,第乙個元素將從佇列中清除。

    還有一種方法,看起來比較簡單,但是如果執行時間長了,可能會造成記憶體洩漏,程式會占用越來越多的記憶體。 這個想法是:

    1)建立乙個空陣列,每次收集時向陣列新增資料,2)然後檢查陣列大小,如果陣列大小<=100,則直接找到陣列中資料的平均值,如果陣列大小大於100,則刪除第乙個元素,然後找到平均值。

    見下圖,兩種方法都放在附件中,你可以選擇你喜歡的一種。

  18. 匿名使用者2024-01-21

    不要那麼麻煩,有乙個問題是,你的串列埠每秒接收多少資料。 如果您的序列埠每秒有 1000 個資料,那麼您必須在秒內計算的平均數字是從 101 到 200,或從 1001 到 1100。 我的方法每秒更新一次,即秒內 1001 到 1100

    這個 1000 for 迴圈模擬我每秒獲取 1000 個資料,每秒取出最新的 1000 個資料並索引前 100 個資料進行平均。

    框圖的下半部分是你的想法,如果你使用一維迴圈移位,陣列會越來越大,當然,你的計算機記憶體足夠大,不會讓陣列每次執行時超過記憶體。

  19. 匿名使用者2024-01-20

    在平均值的情況下,新增乙個陣列總和 - 除以長度,僅此而已。

    此外,這應該放在乙個迴圈中,移位暫存器就可以了。

  20. 匿名使用者2024-01-19

    你使用向量。 沒關係。 使用簡單方便。

    如果直接新增,那就沒辦法了吧? 該陣列不提供類似的功能。 您可以自己重寫函式。 重新分配空間並將其複製到新空間。 這個函式也很容易寫。 (這也是在向量中完成的)。

  21. 匿名使用者2024-01-18

    您無法動態更改陣列的大小。

    int *p = new int[5];

    int *q = new int[10];

    for(i = 0; i < 5; +i) q[i] = p[i];

    delete p;

    p = q;請記住在使用 p 指向的陣列後刪除 p

相關回答
11個回答2024-04-14

在 C++ 中動態定義二維陣列的方法是:

定義二維指標。 >>>More

6個回答2024-04-14

對考生的學歷沒有限制,對從事FRM註冊資格的行業沒有限制,在校大學生也符合FRM註冊資格的要求。 >>>More

12個回答2024-04-14

按照你的描述,2年3000千瓦時的電應該是在合理的範圍內,你可以算一下,3000 24 30=4,每天4千瓦時的電量,如果你每天有1000瓦時的負荷,每天用4個小詩就用完了。 你有很多電氣裝置,雖然不常用,但多幾件就可以超過1000W。 如果儀表有問題,慢走的幾率大於快走的幾率! >>>More

15個回答2024-04-14

首先,如果體內有狂犬病病毒,一般是檢測不到的,除非是等待它攻擊,否則就是病態屍檢,當然這是不可行的,所以只能預防。 >>>More

7個回答2024-04-14

隨著電子裝置小型化需求的增加,單個晶元的功能也在增加。 在現有技術中,為了保證晶元的質量,晶元測試階段通常包括在設計成型和批量生產之間。 然而,傳統的晶元除錯技術是基於晶元功能開發的一套附加的功能特定測試程式,通常只能檢測晶元是否有錯誤或故障,無法準確定位晶元終端中的錯誤,只能通過檢測人員的經驗來判斷,導致晶元檢測速度慢,效率低。 >>>More