Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

BOKI 發問時間: 電腦與網際網路程式設計 · 1 0 年前

有關程式問題~~類似排序問題

我的問題

a=[3 2 4 3 2 1]要變成b=[3 2 4 1]

不管哪種程式都可以

請各位大大寫程式給我參考並說明每一行的意思

已更新項目:

請問一下

那如果是matlab這套軟體的話

那你會寫這方面的程式嗎??

2 個解答

評分
  • Chaos
    Lv 7
    1 0 年前
    最佳解答

    使用MATLAB的話還挺簡單的,下面程式你參考

    首先是利用unique指令將陣列中不同的數字都取出來,固

    a=[3 2 4 3 2 1]

    b=a(1);

    for k=2:length(a)

    flag=1;

    for j=1:length(b)

    if a(k)==b(j)

    flag=0;

    end

    end

    if flag==1

    b=[b a(k)];

    end

    end

    程式中利用flag來判斷是否為新的數字,如果是新的數字,則利用b=[b a(k)]將數字加入

    參考資料: 教學經驗
  • 1 0 年前

    'VB6.0

    Private Sub Form_Load()

    Dim a() As String, b As String, i As Integer

    '將"3 2 4 3 2 1"轉為陣列,設定a陣列內容為a(0)="3",a(1)="2",a(2)="4",a(3)="3",a(4)="2",a(5)="1"

    a = Split("3 2 4 3 2 1", " ")

    '以b變數儲存結果

    b = a(0)

    '將a陣列中的內容逐一取出併檢查是否在 b 變數中已經有此文字

    For i = 1 To UBound(a)

    'InStr(1, b, a(i)) = 0 表示b中沒有 a(i) 這個文字

    If InStr(1, b, a(i)) = 0 Then

    '如果 a(i) 不在 b 中,那就把 a(i) 放入 b

    b = b & " " & a(i)

    End If

    Next i

    '列印出結果

    Print b

    End Sub

    2009-04-09 23:47:11 補充:

    抱歉,這軟體我沒使用....。

還有問題?馬上發問,尋求解答。