要求 k1==k2 这个条件,应该不用算那么多
k1是最后的n1,就从最后的第100行起往前算n1就可以,算到非空时就可以结束。
k1是最后的n1,就从最后的第100行起往前算n1就可以,算到非空时就可以结束。
FUNCTION k2k3(k2,k3,n1) && 最大值、最次大值 IF n1 > k2 k2 = n1 ELSE IF n1 > k3 k3 = n1 ENDIF ENDIF ENDFUNC
[此贴子已经被作者于2021-9-21 12:23编辑过]
之前的代码 按连续非空整块比对 FOR nRow=1 TO ALEN(a100,1) IF EMPTY(a100[nRow,nCol]) n1 = n1 + 1 ELSE k2k3(@k2,@k3,@n1) n1 = 0 krow = krow + 1 ENDIF ENDFOR FUNCTION k2k3(k2,k3,n1) && 最大值、最次大值 IF n1 > k2 k2 = n1 ELSE IF n1 > k3 这个算法有问题,有可能 k2==k3 两个都是老大了 k3 = n1 ENDIF ENDIF ENDFUN 后来的代码 按非空行比对 FOR nRow=1 TO ALEN(a100,1) IF EMPTY(a100[nRow,nCol]) n1 = n1 + 1 k2k3(@k2,@k3,@n1) ELSE n1 = 0 krow = krow + 1 ENDIF ENDFOR FUNCTION k2k3(k2,k3,n1) && 最大值、最次大值 IF n1 > k2 有新的最大时 k3 = k2 原最大变次大 k2 = n1 新的最大 ENDIF ENDFUNC