当前位置: 首页 > 图文教程 > 网络编程 > ASP > 如何用ASP实现去掉三个最高分和三个最低分

ASP
ASP采集入库生成本地文件的几个函数
百度小偷
使用ASP在IIS创建WEB站点的函数
简单过滤一下广告的代码
以前写的一个分页存储过程,刚才不小心翻出来的
用XMLHTTP来偷东西哈!
XMLHTTP利用POST发送表单时提交中文的问题
动态CSS,换肤技术
一段几乎可以让你死机的JS代码
ASP充分利用Err.Description
ASP小偷(远程数据获取)程序入门教程
一段采集程序代码
浅谈自动采集程序及入库
在ASP中调用存储过程的几种方法
使用类,实现模块化
使用模板实现ASP代码与页面分离
一个ASP小马
如何限制同一用户名同时登陆
ASP制作在线人数统计实例
在线统计代码 application

如何用ASP实现去掉三个最高分和三个最低分


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 133 ::
收藏到网摘: n/a

问题:用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)

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