在vb数组中求出指定数目的最大值及其下标

在一个一维数组中,如何求出前n个最大值及其下标,请附代码,谢谢

第1个回答  推荐于2016-07-11
代码如下:
'arr()为你给定的目标数组,n为你指定的前n个最大值,调用例子:
' Dim arr() As Variant
' arr = Array(1, 4, 5, 6, 2, 6, 8, 4, 6, 7)
' PrintPreN arr, 10

Private Sub PrintPreN(arr() As Variant, n As Long)
Dim Brr() As Variant '排序后的数组
dim Crr() As Variant '用来存储下标
Brr = arr
Dim i, j, tmp, tmp1 As Long
ReDim Crr(UBound(arr) + 1)
For i = 0 To UBound(arr)
Crr(i) = i
Next i
For i = 0 To UBound(Brr) - 1
For j = i + 1 To UBound(arr)
If Brr(i) < Brr(j) Then
tmp = Brr(i)
Brr(i) = Brr(j)
Brr(j) = tmp

tmp1 = Crr(i)
Crr(i) = Crr(j)
Crr(j) = tmp1
End If
Next j
Next i

For i = 1 To n
Print "第" & i & "大的数字为:" & Brr(i - 1), "排序前的下标为:" & Crr(i - 1)
Next i
End Sub本回答被提问者采纳

在vb数组中求出指定数目的最大值及其下标
'arr()为你给定的目标数组,n为你指定的前n个最大值,调用例子:' Dim arr() As Variant ' arr = Array(1, 4, 5, 6, 2, 6, 8, 4, 6, 7)' PrintPreN arr, 10 Private Sub PrintPreN(arr() As Variant, n As Long)Dim Brr() As Variant '排序后的数组 dim Crr(...

用VB求最大值最小值和平均值。怎么办?
欲使用VB求一组数的最大值、最小值和平均值,首先定义数组arr,初始化变量n_min、n_max、n_sum、n_av。数组arr中填充待处理的数据,如"1,2,3,4,5,6,7,8,9,10,11,12"。将数组元素以逗号分隔,使用split函数处理。接着,初始化最小值n_min、最大值n_max和总和n_sum。将数组的第一个...

在VB编程中,求最大值和最小值?
VB求最大值最小值可以用冒泡法即可。X[a,b,c,d,e](数组赋值)|| || <FOR i =0 ,i<5,i++> <IF X[i] > TEMP>OR<IF X[i] < TEMP> <TEMP = X[i]> <END IF> <END FOR> || MAX = TEMP MIN = TEMP ||

VB编程求一个数组最大元素及其下标
'设数组为ara=ubound(ar)'数组的最大下标b=Lbound(ar)'数组的最小下标

VB输出数组中最大值的下标
设数组为a(10)dim temp as integer dim j as integer for i=0 to 10 if temp

本人用vb编程,输入一组数,求取其中的最大最小值,代码如下
因为你没有定义数组的数据类型,而且在对数组元素赋值时也没有进行数据类型转换,因此你的数组元素中保存的实际上是字符串。也就有 "11" < "4" 了 解决方法:(1)指定数组的数据类型,将第二行修改为: Dim a() as integer 或(2) 进行类型转换,将第八行修改为:a(i) = val(InputBox("...

VB数组找最大最小值问题。
很简单 for i=0 to 5 a(i)=inputbox("输入任意数",找最值)next i max=a(0)max_j=0 for j=1 to 5 if(a(j)>max) then max=a(j)max_j=j endif next j print max max_j 这个就是的 上面的>改成 <就是找最小值了

VB中怎么用函数MAX和MIN 求出一组数据的最大值和最小值
= 1 To 6 Randomize a(i) = Int(Rnd * 90) + 10 Print a(i);Next i Print Max = a(1)Min = a(1)For i = 1 To 6 If Max < a(i) Then Max = a(i)If Min > a(i) Then Min = a(i)Next i Print "最大值为:" & Max Print "最小值为:" & Min End Sub ...

VB数组编程 输入n个数,求其中的最大值
Dim i As Integer Dim MyMax As Integer Dim n As Integer n = Val(InputBox("输入n!"))ReDim d(n) As Integer For i = 1 To n d(i) = Val(InputBox("输入第" & i & "个数!"))Next i MyMax = d(1)For i = 2 To n If d(i) > MyMax Then MyMax = d(i)Next ...

如何用VB在一系列数中选出一个最大的数
求数组中的最大值 a(i)=array(1,2,3,4,5,6,7,8,9,0)for i=1 to 9 for j=i+1 to 10 '将j的值加1 if a(i)>a(j) then '如果a(i)比a(j)的值大,则进行下面代码 t=a(i):a(i)=a(j):a(j)=t '将a(i)的值赋给t,将a(j)赋给a(i),最后将t的值赋给a(j)...

相似回答