回复 楼主 fdxxhjc
你的问题讲得不是太清楚,我想了一下,可能是这样的运算,以5个数相加为例:1+2+3+4+5,1+2+3+4+6,1+2+3+4+7...1+2+3+4+10,1+2+3+5+6,1+2+3+5+7...,逐次后退一行相加,如果是这样,以下的代码可以一次性完成2行、3行、4行、5行各种数据组合的求和,共627种(不包括同一行的数据相加),程序中的“编号”不再代表顺序号,而是代表有几个数相加。
private all
set color to +7/1
CLEAR
CLOSE
all
SET SAFETY OFF
n=10
DIMENSION sb(10),amb(10)
USE 原表
select * from 原表 into array sb
use
Create table 新表 (编号 N(10))
ALTER table 新表 ADD 和 N(20)
hz=0
FOR i=1 TO N
amb(1)=sb(i)
FOR j=i+1 TO N
hz=amb(1)+sb(j)
APPEND BLANK
REPLACE 编号 WITH 2
REPLACE 和 WITH hz
amb(2)=hz
for ma=j+1 to n
hz=amb(2)+sb(ma)
APPEND BLANK
REPLACE 编号 WITH 3
REPLACE 和 WITH hz
amb(3)=hz
for mk=ma+1 to n
hz=amb(3)+sb(mk)
APPEND BLANK
REPLACE 编号 WITH 4
REPLACE 和 WITH hz
amb(4)=hz
for yy=mk+1 to n
hz=amb(4)+sb(yy)
APPEND BLANK
REPLACE 编号 WITH 5
REPLACE 和 WITH hz
endfor
endfor
endfor
ENDFOR
ENDFOR
wait "以上求和的结果" windows at 16,50 nowait
brow
*MESSAGEBOX('求和已结束!',64,'信息提示')
DELETE FILE *.bak
return
[
本帖最后由 沙枣 于 2015-8-13 17:02 编辑 ]