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

ASP
asp分页(自己整理的2个分页程序)
ASP常用的系统配置函数
雨哲防采集策略之列表篇
雨哲浅谈关于防采集而不影响收录内容篇
asp数据库连接函数
ajax XMLHTTP Post Form时的表单乱码综合解决
ASP注入详细命令40条
用ASP实现MSSQL用户密码破解
ASP创建对象的两种方法比较
ASP字符串转换为整形、双精度型、布尔
ASP计算str2在str1中出现的次数
asp采集抓取网上房产信息的代码
ASP注册登陆实例代码
ASP中使用FileSystemObject时提高性能的方法
分享一个好东东,动态Include文件 (Dynamic File Includes)
解决 JScript 中使用日期类型数据时出现类型错误的问题
在ASP里面创建GUID
在JScript中使用缓存技术的实际代码
ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验
海阳2006+功能中的潜水王

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


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

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