以下是引用wp231957在2014-3-6 19:57:09的发言:
才细看了一下楼主的要求 他是8863对应8863 只不过是不对号入座而已
这个应该好弄了 弄一个踢一个就好了
你踢下看看
才细看了一下楼主的要求 他是8863对应8863 只不过是不对号入座而已
这个应该好弄了 弄一个踢一个就好了
坚守VFP最后的阵地
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand((unsigned)time(NULL)); int t[8863]={0}; //因c里没有dbf 所以用这个数组代表原始数字表 int t2[8863]={0}; //这个用于存放随机的1--8863的数列 也是8863个 而且各不相同 只不过顺序被打乱 int i; for(i=0;i<8863;i++) t[i]=i+1; //将原始数字表初始化为1--8863的递增为1的顺序数列 for(i=0;i<8863;i++) { rep: //@1 int ch=rand()%8863; if(t[ch]!=0) { t2[i]=t[ch]; if(i%14==0 && i>0) printf("\n"); printf("%6d",t2[i]); //这个是用于屏幕输出的语句 每行输出14个 每个数字宽度为6 t[ch]=0; //选中数据后 立即在原始数字表中置 0 以便下次挑选时 把他pass }else goto rep; //@2 此处与@1 构成小循环 专门踢重复数据 } printf("\n"); return 0; }大约5-7秒钟左右吧 运行结束 肯定不超过10秒
CLEAR ALL SET SAFETY OFF CLEAR CREATE TABLE test FREE (hs I, rec I) SELECT "test" RAND(-1) FOR nIndex = 1 TO 8863 INSERT INTO test (rec, hs) VALUES (ROUND(1000000 * RAND(), 0), nIndex) NEXT SORT TO test_rand ON rec USE "test_rand" EXCLUSIVE BROWSE USE IN "test_rand" CLEAR ALL RETURN