关于排序问题

蜗牛_snail 2005-11-19 04:40:19
哪位帅哥靓女能帮我编个简单的程序 要求是输入A,B,C 三个任意的值 系统能按从大到小的顺序输出来, 小弟刚学 望不要见怪
...全文
199 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mick729 2005-11-22
  • 打赏
  • 举报
回复
呀,原来这里有我提的问题的正确答案了,呵呵~
你们真厉害,嘻嘻~
对了,路口就在不远处哥哥,你有QQ号码吗?
我想加你QQ,问问VFP的问题,我想学好它~
如果有,请留下来,好吗?
谢谢了!
我的QQ是13617537
蜗牛_snail 2005-11-20
  • 打赏
  • 举报
回复
哦 懂了 谢谢
zsjiaming 2005-11-20
  • 打赏
  • 举报
回复
订正:
AA(J)=AA(I)
修改成
AA(J)=T
zsjiaming 2005-11-20
  • 打赏
  • 举报
回复
*如果不用函数:比较时要依次与后面的数比较,
*因为是从大到小,所以是<的时候才交换.

INPUT "请输入A: " TO A
INPUT "请输入B: " TO B
INPUT "请输入C: " TO C
*先确定A最大比后面B.C.要大
IF A<B
T=A
A=B
B=T
ENDIF
IF A<C
T=A
A=C
C=T
ENDIF
*再确定B比后面C要大
IF B<C
T=B
B=C
C=T
ENDIF
? A,B,C

*----如果用数组可以用循环..这种方法可以排任意多个数.
LOCAL AA(3)
INPUT "请输入A: " TO AA(1)
INPUT "请输入B: " TO AA(2)
INPUT "请输入C: " TO AA(3)
FOR I=1 TO 3 &&3个数,这是要排序的数
FOR J=I+1 TO 3 &&这是要比较的数,所以是从I+1(后面一个)开始
IF AA(I)<AA(J) &&从大到小,所以小的时候交换
T=AA(I)
AA(I)=AA(J)
AA(J)=AA(I)
ENDIF
ENDFOR
?? AA(I) &&显示刚排后的第I个数 (也可以在最后一次性打印)
ENDFOR
*? AA(1),AA(2),AA(3) &&一次性打印.
蜗牛_snail 2005-11-20
  • 打赏
  • 举报
回复
谢谢 你们!
蜗牛_snail 2005-11-20
  • 打赏
  • 举报
回复
如果我用这个程序可以吗? 如果不行又错在哪呢?
*排序
set talk off
clear
if A>B
T=A
A=B
B=T
IF B>C
T=B
B=C
C=T
IF C>A
T=C
C=A
A=T
?A,B,C
ENDIF
ENDIF
ENDIF
SET TALK ON
RETURN
  • 打赏
  • 举报
回复
哇,排序我有学到新方法了,以前都用冒泡或选择,现在有了表格操作或函数...
zsjiaming 2005-11-19
  • 打赏
  • 举报
回复
* 如果只是三个数...
LOCAL AA(3)
INPUT "请输入A: " TO AA(1)
INPUT "请输入B: " TO AA(2)
INPUT "请输入C: " TO AA(3)
ASORT(AA,1,3,1) &&对数据排序,从第1个开始.排序个数为3.最后参数1:表示降序.
? AA(1),AA(2),AA(3)
RETURN
十豆三 2005-11-19
  • 打赏
  • 举报
回复
CREATE TABLE TMP (NUM I)
FOR I=1 TO 3
lString='请输入第'+ALLTRIM(STR(I))+'个整数:'
INPUT lString TO A
INSERT INTO TMP (NUM) VALUES (A)
ENDFOR
SELECT * FROM TMP INTO CURSOR TMP1 ORDER BY NUM DESC
SELECT TMP1
SCAN
?NUM
ENDSCAN
CLOSE DATABASES ALL
DELETE FILE TMP.DBF

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧