VB數字由小到大排列

2025-01-06 16:55:12 字數 2376 閱讀 2354

1樓:網友

其實就是乙個陣列排序噻 方法很多 給你乙個插入排序演算法。

private sub insertsort(ary() as integer, optional byval stype as integer = 0)

逐鹿傳說。插入排序演算法。

stype=0 按公升序排序。

stype<>0 按降序排序。

on error goto ex

dim ilbound as integer '指定陣列維可用的最小下標。

dim iubound as integer '指定陣列維可用的最大下標。

dim ipoint as integer '指標。

dim icunrent as integer '待比較的值。

ilbound = lbound(ary)iubound = ubound(ary)for j = ilbound + 1 to iuboundipoint = j - 1 '指標前移一位。

icunrent = ary(j)

if stype = 0 then

do while icunrent < ary(ipoint)ary(ipoint + 1) =ary(ipoint)ary(ipoint) =icunrenticunrent = ary(ipoint)ipoint = ipoint - 1

if ipoint < ilbound thenexit do

end if

loopelse

do while icunrent > ary(ipoint)ary(ipoint + 1) =ary(ipoint)ary(ipoint) =icunrenticunrent = ary(ipoint)ipoint = ipoint - 1

if ipoint < ilbound thenexit do

end if

loopend if

nextexit sub

ex:msgbox

end sub

vb裡 我給出10個數進行大小排列。但是我現在只做到了10個數選出最大的數求大神幫我詳解接下來我該怎麼做

2樓:網友

我給你推薦一種簡單的交換排序法。

如果如下為資料列arr(6)=(用字母代替,方便敘述)

從第乙個數開始往下迴圈比較,總是將大的數替換到前面的位置,從大到小排序流程如下:

1)arr(0)跟其餘所有的資料挨個比較,把大的數換到arr(0),arr(0)跟arr(1)比較,如果arr(0)>=arr(1),則進行下乙個比較,如果arr(0)=arr(2),則進行下乙個比較,如果arr(0)..

直到比較完所有的數,此時arr(0)是最大的數了。

2)arr(1)跟餘下的數挨個比較,把大的數換到arr(1),最後第二大數就被換到arr(1)

3)一直比較到arr(最後一位)

得到的數列就為乙個從大到小的數列。

具體**如下。

dim arr()= new integer()=定義源陣列。

dim i,j as integer定義迴圈變數。

dim count as long定義陣列個數。

count = ubound(arr)-lbound(arr)+1獲取陣列個數。

for i = 0 to count-1

for j = i to count-1

if arr(i)temp = arr(i)把小的數儲存起來。

arr(i)=arr(j)把大的數賦於前面的arr(i)

arr(j)=temp

end if

nextjnext i

這個時候你得到的陣列就是乙個從大到小的陣列了。

如何用vb設計乙個程式,可以將輸入的10個以上的數字 按大小順序排列出來,可以給我思路,也可以給我答案。

3樓:笑十三螂

其實從思想上來說,就是乙個排序的思路問題。

排序的方法有很多。

說2個最簡單的(設讓結果從小到大排列)

方法一假設10個數。

把第乙個依次與他後面的比較,如果比後面的大,就把位子換下,這樣當第乙個看完後面9個數後第乙個數就變成最小的數了。

再把第二個依次與後面8個比較,讓第二個變成9箇中最小的以此類推,每次都拿還沒比出順序的第乙個數和它後面的每個數比較這樣當第九個數拿出來和第十個數比完後,整個數列就變成從小到大排列的了方法二(叫做冒泡)

依次拿第乙個數和第二個比,第二個和第三個比,凡是前面的數比後面的數大的話就換位子,當第九個和第十個比完後,第十個位子永遠是最大的數。然後再對前9個數再做一次這個事情,那第九個數就變9個裡最大的了,直到最後一次第乙個數和第二個數比完(此時後面8個數已經按序排列了)後,整個數列就變成了從小到大排列了。

輸入整數x,y,z,請把這數由小到大輸出

先比較x,y,如果x大於y,則交換兩數的值,也就是把x,y中較小的數放在x中,把較大的數放在y中。使得x 再比較x和z,同樣如果如果x小就不交換,如果x大於z,就交換,使得x中存放較小的那個數。通過以上兩步,使得x中存放的就是三個數中最小的數了。再通過第三次判斷,使得y中存放居中的數,z中存放最大的...

用1,2,3,4,數字組的五位數有,從小到大排列起來,是什麼數

五元素不bai重複排列 p5 120,du120 5 24,即首數1 2 3 4的排序zhi為1 24 25 48 49 72 73 96,第dao78個應該首數為4,次位為專1,從小屬到大為41235,41253,41325,41352,41523,41532。第78個即41532。由1,2,3,...

EXCEL排序問題怎麼從小到大排序

b1 substitute substitute substitute a1,家園 號 室 下拉,以b列為關鍵字升序排序 是不是以 號 排序,用輔助列得到 號 公式 mid a1,3,find 號 a1 3 下拉 然後對輔助列進行排序。要做一個輔助列,然後抽取數字,然後按資料大小排序,再刪除輔助列便...