版主SZY345在QQ群上也给我提供了这个思路并写了示例代码,但是还有一个问题没有解决,因为总人数zrs%40<>0,假设178人,分作4个考室还余18人,这18个人安排到第5个考室,这18个人从1-18号怎样随机编排。
我用了一个很蛮的方法,把这18个人从原表删除并拷到另一个表中,对这个新表进行进行随机编号,但我发现用以下语句编号时总是有部分人员没有进行编排:
sele bb01
zrs=recc()
for i=1 to zrs
go int(rand()*(zrs)+1)
if ksh=''
repl ksh with '3',zwh with allt(str(i))
else
i=i-1
endif
下面的程序经过测试,完全可以满足楼主的需要。
sele bb01
zrs=recc()
for i=0 to zrs-1 go int(rand()*(zrs)+1) if ISBLANK(ksh) repl ksh with alltri(str(int(i/40)+1)),zwh with allt(str(mod(i,40)+1)) else i=i-1 endif
endfor