注册 登录
编程论坛 VFP论坛

求非0的最小值

fdqzy 发布于 2021-02-15 19:11, 1135 次点击
程序代码:
create cursor b1 (jnh N(2),m1 n(3),m2 n(3),m3 n(3),min n(3))
insert into b1 values (1,60,0,58,89,58)
insert into b1 values (2,0,0,58,89,58)
insert into b1 values (3,65,70,0,89,65)
insert into b1 values (4,60,0,0,89,60)

在m1、m2、m3中如何求非0的最小值(如字段min所显示)?
谢谢!
5 回复
#2
sdta2021-02-15 19:33
程序代码:
create cursor b1 (jnh N(2),m1 n(3),m2 n(3),m3 n(3),m4 n(3),nmin n(3))
insert into b1 values (1,60,0,58,89,58)
insert into b1 values (2,0,0,58,89,58)
insert into b1 values (3,65,70,0,89,65)
insert into b1 values (4,60,0,0,89,60)
blank field nmin all
scan
    lcstr = ""
    for lnj = 2 to fcount() - 1
        lcstr = lcstr + iif(empty(evaluate(field(lnj))), "", "," + transform(evaluate(field(lnj))))
    endfor
    lcstr = substr(lcStr, 2)
    replace nmin with min(&lcstr)
endscan
browse
#3
fdqzy2021-02-16 07:56
回复 2楼 sdta
谢谢!
#4
sdta2021-02-16 12:07








程序代码:
create cursor b1 (jnh N(2),m1 n(3),m2 n(3),m3 n(3),m4 n(3),nmin n(3))
insert into b1 values (1,60,0,58,89,58)
insert into b1 values (2,0,0,58,89,58)
insert into b1 values (3,65,70,0,89,65)
insert into b1 values (4,60,0,0,89,60)
blank field nmin all
scan
    scatter fields m1, m2, m3, m4 to la
    asort(la)
    for lnj = 1 to alen(la, 1)
        if la[lnj] != 0
            replace nmin with la[lnj]
            exit
        endif
    endfor
endscan
browse
#5
fdqzy2021-02-16 14:38
以下是引用sdta在2021-2-16 12:07:40的发言:









create cursor b1 (jnh N(2),m1 n(3),m2 n(3),m3 n(3),m4 n(3),nmin n(3))
insert into b1 values (1,60,0,58,89,58)
insert into b1 values (2,0,0,58,89,58)
insert into b1 values (3,65,70,0,89,65)
insert into b1 values (4,60,0,0,89,60)
blank field nmin all
scan
    scatter fields m1, m2, m3, m4 to la
    asort(la)
    for lnj = 1 to alen(la, 1)
        if la[lnj] != 0
            replace nmin with la[lnj]
            exit
        endif
    endfor
endscan
browse

谢谢!
#6
schtg2021-02-17 07:10
学习啦,谢谢!
1