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

ASP
ASP实现表单中容量大的数据的提交方法
强烈推荐ASP初学者观看:常用ASP技术
认真学习ASP内置对象Session的应用
asp函数转换xml中的实体字符[转义符]
ASP防止重复多次提交表单的方法
ASP处理XSLT转换XML的实现
ASP中将Excel数据导入到Access
[推荐]ASP 编程中 20 个非常有用的例子
[推荐]每个ASP程序员必备的知识
[推荐]ASP初学者常犯的几个错误
解决杀毒软件误删asp文件的方法
用VB编写ActiveX DLL实现ASP编程
asp.net结合js的网页打印程序
ASP网站远程客户实现EXCEL打印功能
ASP程序中使用断开的数据记录集
利用ASP发送和接收XML数据的处理方法
20种看ASP程序源码的方法及工具
ASP技巧:禁用FileSystemObject组件
在ASP中使用SQL语句:开始执行
ASP编写计数器的优化方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 102 ::
收藏到网摘: 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)

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