教你用ASP实现去掉三个最高分和三个最低分

    作者:课课家更新于: 2015-11-09 13:24:10

    大神带你学编程,欢迎选课

    欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧计算机编程语言

    问题:用ASP如何实现去掉三个最高分和三个最低分?
    解决思路:
    1、将整个数组排序,删除两端的三个最大值和三个最小值(另一网友提出的!)
    2、挑选出其中三个最大的数和三个最小的数,将其删除!(我的思路!)

    编程语言(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。[1]
    最早的编程语言是在电脑发明之后产生的,当时是用来控制提花织布机及自动演奏钢琴的动作。在电脑领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。很多编程语言需要用指令方式说明计算的程序,而有些编程语言则属于声明式编程,说明需要的结果,而不说明如何计算。编程语言排行榜上
    我觉得我的方法应该可行一些,因为要删除的数只有三个最大,三个最小,没有必要把所有的数都进行排序,特别是当数据很多时,将会浪费很多的资源!我写的序如下:

    以下为引用的内容:
    <%@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("
    ")
    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,将最小的数变成最大的数!
    心得:c语言编程入门
    试验出了怎么删除一个数组元素!
    巧妙应用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)


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

    大家学到了多少?如果意犹未尽,可前往课课家官网直接查看,希望大家获益匪浅哦!!!

课课家教育

未登录

1