| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 437 人关注过本帖
标题:[求助]程序有问题:想找出数组中两数相差在15以内的数
只看楼主 加入收藏
ljyxxzj
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-21
收藏
 问题点数:0 回复次数:6 
[求助]程序有问题:想找出数组中两数相差在15以内的数
想找出数组中两数相差在15以内的数,这些数为不合格数,但是运行不出来
请指教,程序如下,谢谢
Private Sub Command2_Click()
Dim bjh() As Variant
Dim tmax As Variant
bjh = Array(130, 120, 110, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10)
tmax = 0
For i = LBound(bjh) To UBound(bjh) - 1
For j = i + 1 To UBound(bjh)
If (bjh(i) - bjh(j) >= 15) And (bjh(i) - bjh(j - 1) < 15) Then
If i - j > tmax Then
tmax = i - j
Print "不合格的有1--" & i & "," & j & "--" & UBound(bjh)
End If
End If
Print "tmax=" & tmax;
Next j
Next i
End Sub
2007-11-15 20:39
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
麻烦你给程序写个注释。

tmax是干什么的?
2007-11-15 21:05
ljyxxzj
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-21
收藏
得分:0 

重发一下吧(数组给改了一下,那个不太好),说的可能不是很清楚,就是要求i-j的最大值,tmax就是这个最大值,要求(bjh(i) - bjh(j) >= 15) And (bjh(i) - bjh(j - 1) < 15),i-j以外的就算不合格了,这样应该明白了吧

Private Sub Command2_Click()
Dim bjh() As Variant
Dim tmax As Variant
bjh = Array(130, 125, 123, 120, 115, 80, 78, 72, 60, 40, 30, 20, 10)
tmax = 0
For i = LBound(bjh) To UBound(bjh) - 1
For j = i + 1 To UBound(bjh)
If (bjh(i) - bjh(j) >= 15) And (bjh(i) - bjh(j - 1) < 15) Then
If i - j > tmax Then
tmax = i - j
Print "不合格的有1--" & i & "," & j & "--" & UBound(bjh)
End If
End If
Print "tmax=" & tmax;
Next j
Next i
End Sub

2007-11-15 21:23
simpson
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:863
专家分:17
注 册:2006-11-16
收藏
得分:0 
需求分析失败

不懂你要怎么做

全国最大的 Java专业电子书免费分享[url]http:///in.asp?id=xrmao[/url]
2007-11-15 21:51
ljyxxzj
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-21
收藏
得分:0 
我想想吧,谢谢了
2007-11-15 22:25
ljyxxzj
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-21
收藏
得分:0 
做出来了,不管你们看不看的懂,还是发上来吧,呵呵
Private Sub Command2_Click() '相差15最多的刀
Dim bjh() As Variant
Dim tmax As Variant
bjh = Array(130, 125, 124, 123, 115, 80, 70, 60, 50, 40, 30, 20, 10)
tmax = 0
For i = LBound(bjh) To UBound(bjh) - 1
For j = i + 1 To UBound(bjh)
If (bjh(i) - bjh(j) <= 15) Then
If j - i > tmax Then
tmax = j - i

End If
End If
Next j
Next i
Print "tmax=" & tmax
Print "不合格刀有" & UBound(bjh) - tmax & "个"
For i = LBound(bjh) To UBound(bjh) - 1
For j = i + 1 To UBound(bjh)
If (bjh(i) - bjh(j) <= 15) And j - i = tmax Then
Print "i=" & i, "j=" & j
If i = 1 Then
Print ; "不合格刀有" & j + 1 & "--" & UBound(bjh)
End If
If i = 2 Then
Print ; "不合格刀有1" & "," & j + 1 & "--" & UBound(bjh)
End If
If i >= 3 Then
Print ; "不合格刀有1--" & i - 1 & "," & j + 1 & "--" & UBound(bjh)
End If
End If
Next j
Next i
End Sub
2007-11-15 23:16
simpson
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:863
专家分:17
注 册:2006-11-16
收藏
得分:0 

不管怎么样 恭喜一下


全国最大的 Java专业电子书免费分享[url]http:///in.asp?id=xrmao[/url]
2007-11-15 23:52
快速回复:[求助]程序有问题:想找出数组中两数相差在15以内的数
数据加载中...
 
   



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

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