加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

如何用ASP达成去掉三个最高分和三个最低分

发布时间:2023-09-06 11:04:28 所属栏目:Asp教程 来源:
导读:问题:用asp如何实现去掉三个最高分和三个最低分?解决思路:1、将整个数组排序,删除两端的三个最大值和三个最小值(另一网友提出的!)2、挑选出其中三个最大的数和三个最小的数,将其删除!(我的思路!)我觉得我

问题:用asp如何实现去掉三个最高分和三个最低分?

解决思路:

1、将整个数组排序,删除两端的三个最大值和三个最小值(另一网友提出的!)

2、挑选出其中三个最大的数和三个最小的数,将其删除!(我的思路!)

我觉得我的方法应该可行一些,因为要删除的数只有三个最大,三个最小,没有必要把所有的数都进行排序,特别是当数据很多时,将会浪费很多的资源!我写的序如下:

以下为引用的内容:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<%

dim Arr

Arr=array(91,39,46,24,14,56,31,32,56,89)

call DeleteMax(UBound(Arr),3)’删除三个最大的数!

call GetBack()’每个数称以-1,将最小的数变成最大的数!

call DeleteMax(UBound(Arr),3)’删除称以-1以后三个最大的数!

call GetBack()’还原每一个数

for kk= 0 to UBound(Arr)’输出每一个数

Response.Write(Arr(kk))

Response.Write("<br>")

next

sub DeleteMax(Arr_total,willdelete)

for m= 1 to willdelete

for i= 0 to Arr_total-m

if Arr(i)>Arr(i 1) then

call swap(Arr(i),Arr(i 1))

end if

next

ReDim Preserve Arr(Arr_total-m)

next

end sub

sub swap(num_a,num_b)’交换两个数

x=num_a

num_a=num_b

num_b=x

end sub

sub GetBack()

for L=0 to UBound(Arr)

Arr(L)=Arr(L)*-1

next

end sub

%>

其中有三个子程序:

1、DeleteMax(Arr_total,willdelete)

功能:删除若干个最大的数,Arr_total:数组的最大可用下标,willdelete:将要删除的最大数的个数。

2、swap(num_a,num_b)

功能:交换两个数

3、GetBack()

功能:将数组的每个元素乘以-1,将最小的数变成最大的数!

心得:

试验出了怎么删除一个数组元素!

巧妙应用redim和Preserve语句,如:

以下为引用的内容:

dim A()

redim A(10)

’想删除第六个元素A(5)

for n= 5 to ubound(A)-1

A(n)=A(n 1)

next

redim Preserve A(ubound(A)-1)

以上的代码,就能够完成了,不信你试试...

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章