不知何缘故程序执行几次就卡住了
LOCAL xjl,djl,ts,xss,dss,kssj,tjCLEAR
SELECT 1
USE D:\二生素数中项合成\偶数的素数对.DBF ALIAS 偶数素数对
SELECT 2
USE D:\二生素数中项合成\二生L24中项.DBF ALIAS 广孪中表
kssj=SECONDS()
FOR i=199801 to 200001
@ 3,6 say i
X=2*i
Y=X/2
s=0
SELECT 2
LOCATE FOR 二24中>X
DO CASE
CASE EOF()
GO Bottom
CASE 二24中>X
SKIP -1
ENDCASE
xjl=1
djl=RECNO()
t=.T.
DO WHILE t
dss=二24中
GO xjl
xss=二24中
IF xss=<Y OR dss>=Y
t=.T.
ELSE
t=.F.
ENDIF
DO CASE
CASE xss+dss>X
GO djl
SKIP -1
djl=RECNO()
CASE xss+dss=X
s=s+1
CASE xss+dss<X
GO xjl
SKIP
xjl=RECNO()
GO djl
ENDCASE
ENDDO
IF xss>=Y OR dss=<Y
SELECT 1
APPEND BLANK
REPLACE 偶数 WITH X
REPLACE 素数对 WITH s
ENDIF
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
这个程序是:先搜寻最大值位置(与所求的偶数比较),记下指针位置,然后从两头往中心移动,当正好大小值之和是所求偶数值时,s累加一次,直到大值小于中值,或小值大于中值,就结束循环,然后填写偶数及s值。
问题是:程序外循环运行几次就卡住不往下进行了。
如果加上i=i+1时,偶数是间隔的(主要是这时也不能很好完成外循环,也出现卡顿现象;在去掉i=i+1,碰运气可以完成全部外循环,但是10次9次失败)。