主题:怎么知道循环中的跳变?
ckjing
[专家分:10] 发布于 2009-09-01 08:06:00
有一计算的循环,结果为变量k,k的值为1或0,开始为1或0,我要怎么知道何时变0或变1。我要计算连续的有几个0或连续的有几个1.
回复列表 (共17个回复)
11 楼
homayzh [专家分:7040] 发布于 2009-09-01 13:31:00
你把你做的整个循环贴上来我看看!
12 楼
ckjing [专家分:10] 发布于 2009-09-01 21:36:00
大体上是这样,应该能实现
g=0
tt=0
For i=1 To 1000
L为随机输出的值1或0
If L=tt
g=g+1
Else
g=1
tt=1
Endif
Endfor
但循环完后要取得其中1的连续个数最大值,第二大值和0的连续个数最大值,第二大值
我现在的想法是在else后把g值赋予数组变量,不过数组不是要很多,给我提个参考,谢谢
13 楼
moz [专家分:37620] 发布于 2009-09-03 00:02:00
VFP - 工具 - 调试器 - F5 - 选择要运行的程序
按F8单步运行
窗口 - 监视 (ALT + 3)
可以在监视文本框内添加需要跟踪的变量的值、对象的属性等等等等。
14 楼
ckjing [专家分:10] 发布于 2009-09-03 07:43:00
谢谢楼上,又长知识了
下面我做的
g=0
tt=0
For i=1 To 1000
L为随机输出的值1或0
If l=tt
g=g+1
Else
IF l=0
lz=IIF(lz<g,g,lz)
tt=0
else
lbz=IIF(lbz<g,g,lbz)
tt=1
ENDIF
g=1
ENDIF
Endfor
这个能算出最大值,但不能算出第二大值
15 楼
colcolcom [专家分:2330] 发布于 2009-09-05 07:04:00
你的问题是汉若塔的递归问题.
i=0
j=0
do while .t.
if 表达式=i
j=j+1
else
?j
j=0
i=表达式
if messagebox('是否继续',3+32+256,'')=6
exit
endif
endif
enddo
16 楼
colcolcom [专家分:2330] 发布于 2009-09-05 07:13:00
如果要:::能算出最大值,也能算出第二大值
要么用表排序,要么用起泡法
17 楼
ckjing [专家分:10] 发布于 2009-09-05 07:39:00
什么叫起泡法,刚起步,真不知道,汗
我来回复