修正求助:求高手修正能手所编的程序!
0—9共10个数字,把这10个数字按组合方式进行罗列共有:10!/5!*5!=120 种情形。0—9这10个数字中(0代表10)如果哪个数字出现了,就在哪个数字的最后一行相应位置递增(这个问题已解决),然后在含有“出”字的含有该数字的字段里递增。图解说明如下:未处理前:
处理后:
压缩后的DBF表:
压缩后的DBF表.rar
(1.25 KB)
有个编程能手编了一个程序如下:
Select 1
Use 01表
Go Top
Do While Eof() = .F.
For i = 1 To 10
a = Field(i)
If &a > 0
For h = 11 To 130
IF i = 10
c = 0
ELSE
c = i
ENDIF
If Alltrim(Str(c))$Field(h)
b = Field(h)
Replace &b With &a
Endif
Endfor
Endif
Endfor
Skip
Enddo
k = 11
Do While k <= 130
a = Field(k)
Go Top
c = 0
Do While Eof() = .f.
IF &a > 0
c = c+1
Endif
If c > 0 AND &a > 0
Replace &a With c
Endif
Skip
ENDDO
k = k+1
Enddo
这个能手所编的程序有不完善的地方:从第11列到第130列,符合条件的每一列最后一个数值递增应是在该列倒数第二行的基础上递增,而不是该列的所有累积递增。比如说:如果最后一行的“十”>0,第18列“出120”的倒数第二行是1,那么第18列“出120”的最后第一行应是2;如果第18列“出120”的倒数第二行是6,那么第18列“出120”的最后第一行应是7;如果第18列“出120”的倒数第二行是空白,那么第18列“出120”的最后第一行应是1。
编程能手所编的程序到底错在哪?求高手修正。