日期:2014-05-17  浏览次数:20923 次

[急求帮助] 求数组中最小的正整数,高手帮帮忙~
比如一个数组:
Dim   MyArray
MyArray   =   Array(-17,   -10,   -7,   92,   88,   83,   93,   91,   76,   87,   94)

如何筛选出数组中的最小的正数呢?



------解决方案--------------------
設計一中間變量level,level取值爲:練到等級除於10取整。
因此按你的要求價格從零級開始,價格表如下:
level <=3: 等級*1
level <=4:30+等級/10(取余)*2
level <=5:50+等級/10(取余)*3
level <=6:80+等級/10(取余)*4
……
要求價格計算方法:
22級-46級應要:
22 mod 10 = 2 需要:22*1=22元
46 mod 10 = 4 需要:30+46\10*2=42圥
因此應該付給代練爲:42-22=30元
------解决方案--------------------
汗。。。。
42-22=30!!
還有一個問題需要你自己解決:22級這一級要不要付代練的費用。
上述方法是不計算22級的價格。
------解决方案--------------------
for + do case

代码不写了,看明白了自己写!

ls那位的代码,过于依赖条件了,如果条件变化就不好整了!而且如果等级跨度太大,ls的代码就要靠递归实现了,效率未必很高
------解决方案--------------------
看不懂楼主的程序要干什么
不过找最小正数很好实现

Dim i,MyArray,Count
MyArray = Array(-17, -10, -7, 92, 88, 83, 93, 91, 76, 87, 94)
Count=0
For i=0 To Ubound(MyArray)
If MyArray(Count)> 0 Then
If MyArray(Count)> MyArray(i) And MyArray(i)> 0 Then
Count=i
End If
Else
Count=i
End If
Next
If Count=Ubound(MyArray) And MyArray(Count) <=0 Then
Response.Write "没有正数! "
Else
Response.Write "最小正数 "& MyArray(Count) & ",在数组第 "& Count & "维 "
ENd If