标题:求“出现第一个数到出现第二个数间的间隔数和其最大的间隔数”
只看楼主
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
结帖率:68.57%
已结贴  问题点数:20 回复次数:16 
求“出现第一个数到出现第二个数间的间隔数和其最大的间隔数”
各位老师:

下表是查询结果表,如何获取“类型”中第一个“高”与第二个“高”、第二个“高”与第三个“高”......之间的间隔数?最大的间隔是多少??

(以下表为例:第一个“高”与第二个“高”间距为 2;第二个“高”与第三个“高”的间距为 1;第三个“高”与第四个“高”的间距为 3;第四......;它们之间最大的间距是第三个“高”与第四个“高”的间距,间距为 3);请问各位老师,怎么实现?感谢!!非常急!先谢了!!

序号    类型
1        高
2      
3      
4        高
5      
6        高
7     
8     
9      
10       高
11   
12       高
13       高
14     
15     
…………….   


搜索更多相关主题的帖子: 间隔 
2009-11-13 15:24
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
第一步,循环遍历所有得出一共有几个高,然后创建一个数组这个数组的大小就是高的个数
第二部,继续循环遍历遇到一个,用一个临时变量记录间距,遇到一个高将当前临时变量存入数组,然后清空临时变量继续自增,得到所有间隔数
第三步,将间隔数数组使用冒泡排序法排序得到最大间隔数。
2009-11-13 19:36
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
VBScript好像没有ArrayList对象(动态集合对象),如果用ArrayList两个循环就可以搞定。
2009-11-13 19:39
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
得分:0 
如果用ArrayList两个循环怎么写!是否可以给些代码?感谢!!

我是农家的孩子,我有农家孩子的本色!
2009-11-13 19:51
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
得分:0 
自己顶一下!

我是农家的孩子,我有农家孩子的本色!
2009-11-14 09:31
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
得分:0 
<%
id="4-1,6-4,10-6,12-10,13-12,...."  ’第二个高的ID-第二个高的ID;第三个高的ID-第二个高的ID.......
‘ID="3,2,4,2,1......"‘怎么获取??

    Public Function max(strarr,outtype)
      Dim strsplit,tempmin,tempmax,i
      strsplit = split(id,",")
      tempmin = strsplit(0)
      tempmax = strsplit(0)
    For i=0 to ubound(strsplit)
    If strsplit(i)<tempmin then tempmin=strsplit(i)
    If strsplit(i)>tempmax then tempmax=strsplit(i)
  Next
    If outtype=1 then
    max=tempmax
  Else
    max=tempmin
  End if
  End Function
%>
如何获取ID的这个数组?如果能这样获取,用上面的代码应该就可以实现,但这数组不晓得怎么获取!!

麻烦各位老师帮帮忙了!!

我是农家的孩子,我有农家孩子的本色!
2009-11-14 09:58
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
using System;
using System.Collections;
using
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace TempApplication91114
{
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        private void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            ArrayList Arl=new ArrayList();//ArrayList对象
            string[][] Ary=new string[30][];//二维数组
            //生成数据
            for(int r=0;r<Ary.Length;r++)
            {
                Ary[r]=new string[2];
                //随机生成高
                switch(r)
                {
                    case 1:
                        Ary[r][1]="高";
                    break;
                    case 4:
                        Ary[r][1]="高";
                    break;
                    case 6:
                        Ary[r][1]="高";
                    break;
                    case 10:
                        Ary[r][1]="高";
                    break;
                    case 12:
                        Ary[r][1]="高";
                    break;
                    case 13:
                        Ary[r][1]="高";
                    break;
                    case 20:
                        Ary[r][1]="高";
                    break;
                    case 23:
                        Ary[r][1]="高";
                    break;
                    case 25:
                        Ary[r][1]="高";
                    break;
                    case 28:
                        Ary[r][1]="高";
                    break;
                    case 30:
                        Ary[r][1]="高";
                    break;               
                    default:
                        Ary[r][1]="";
                    break;               
                }
                Ary[r][0]=Convert.ToString(r);
            }
            //显示生成的数据
            Response.Write("<TABLE>");
            for(int vr=0;vr<Ary.Length;vr++)
            {
                Response.Write("<tr>");
                for(int vc=0;vc<Ary[vr].Length;vc++)
                {
                    Response.Write("<td>"+Ary[vr][vc]+"&nbsp;&nbsp;&nbsp;</td>");
                }
                Response.Write("</tr>");
            }
            Response.Write("</table>");
            int j=0;
            for(int cr=0;cr<Ary.Length;cr++)
            {
                if(Ary[cr][1]=="高")
                {
                    Arl.Add(j-1);
                    j=0;
                }
                j++;
            }
            Response.Write("排序前===========<BR>");
            for(int t=0;t<Arl.Count;t++)
            {
                Response.Write(Arl[t]+"<BR>");
            }
            Response.Write("==================<BR>");

            //冒泡排序法
            //第一个数跟最后一个比较大小后替换
            for(int i=0;i<Arl.Count;i++)
            {
                for(j=Arl.Count-1;j>i;j--)
                {
                    if(int.Parse(Arl[j].ToString())<int.Parse(Arl[i].ToString()))
                    {
                        int temp=int.Parse(Arl[j].ToString());
                        Arl[j]=Arl[i];
                        Arl[i]=Convert.ToString(temp);
                    }
                }
            }
            Response.Write("=======排序后<BR>");
            for(int t=0;t<Arl.Count;t++)
            {
                Response.Write(Arl[t]+"<BR>");
            }
        }

        #region Web 窗体设计器生成的代码
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: 该调用是 Web 窗体设计器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }
        
        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
    }
}
2009-11-14 18:39
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
得分:0 
非常感谢老师!

我是农家的孩子,我有农家孩子的本色!
2009-11-14 18:54
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
得分:0 
老师:
CStr(num) 可以获取最大间隔数;
CStr(i)  可以获取倒数第一个“高”到最后一条信息的间隔数
最大间隔数、倒数第一个“高”到最后一条信息的间隔数都实现了,现在就要只需实现倒数第一个“高”到倒数第二个“高”的间隔数了,感谢老师再看看怎么修改?
<%
dim isgao
i = 0
num = 0
isgao = true
do while not rs.eof
    if rs("类型") = "高" then
        isgao = false
    end if
    if isgao then
        i = i + 1
    else
        if i > num then
            num = i
        end if
        i = 0
        isgao = true
    end if
    rs.movenext
loop
response.write "最大间隔为" & CStr(num)
response.write "倒数第一个高到最后一条信息的间隔为" & CStr(i)
response.write "倒数第一个高到倒数第二个高的间隔为" & ......
%>

我是农家的孩子,我有农家孩子的本色!
2009-11-15 13:41
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
如果你是获得所有间隔数存入数组,取倒数第二个不就是数组的倒数第二个元素吗?
2009-11-15 15:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-292178-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.518247 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved